使用 R 中的 ggplot2 跟踪散点图中各点之间的线
Tracing lines between points in a scatterplot using ggplot2 in R
可以下载数据了here
每一行代表一个可以在不同部分找到的对象,如 XY 坐标所示 (x1,y1; x2,y2;...; xn,yn)。在这个数据集中,点数较多的行是“1”、“16”和“18”,每行有4个点(坐标)。
我想使用 ggplot2 散点图绘制所有这些 XY 坐标,并分别追踪每一行中各点之间的线。
我终于通过运行几个代码手动完成了:
首先,我删除了没有数据的列:
Refits_H <- within(Refits_H, {
Unit <- NULL
x5 <- NULL
x6 <- NULL
x7 <- NULL
x8 <- NULL
x9 <- NULL
x10 <- NULL
x11 <- NULL
y5 <- NULL
y6 <- NULL
y7 <- NULL
y8 <- NULL
y9 <- NULL
y10 <- NULL
y11 <- NULL
})
其次,我对行和列重新排序:
Refits_H <- with(Refits_H, Refits_H[order(y4, y3, y2, y1, decreasing=FALSE),])
Refits_H <- Refits_H[c("x4","y4","x3","y3","x2","y2","x1","y1")]
最后我回答了我自己的问题 运行 这个代码:
library(tidyverse)
library(dplyr)
Refits_H_trans <- gather(Refits_H, xy, val) %>%
mutate(coord = substr(xy, 1, 1),
pair = parse_number(xy)) %>%
group_by(xy) %>%
mutate(sample = 1:n()) %>%
ungroup() %>%
select(-xy) %>%
spread(coord, val) %>%
filter(!is.na(x) & !is.na(y))
可以下载数据了here
每一行代表一个可以在不同部分找到的对象,如 XY 坐标所示 (x1,y1; x2,y2;...; xn,yn)。在这个数据集中,点数较多的行是“1”、“16”和“18”,每行有4个点(坐标)。
我想使用 ggplot2 散点图绘制所有这些 XY 坐标,并分别追踪每一行中各点之间的线。
我终于通过运行几个代码手动完成了:
首先,我删除了没有数据的列:
Refits_H <- within(Refits_H, {
Unit <- NULL
x5 <- NULL
x6 <- NULL
x7 <- NULL
x8 <- NULL
x9 <- NULL
x10 <- NULL
x11 <- NULL
y5 <- NULL
y6 <- NULL
y7 <- NULL
y8 <- NULL
y9 <- NULL
y10 <- NULL
y11 <- NULL
})
其次,我对行和列重新排序:
Refits_H <- with(Refits_H, Refits_H[order(y4, y3, y2, y1, decreasing=FALSE),])
Refits_H <- Refits_H[c("x4","y4","x3","y3","x2","y2","x1","y1")]
最后我回答了我自己的问题 运行 这个代码:
library(tidyverse)
library(dplyr)
Refits_H_trans <- gather(Refits_H, xy, val) %>%
mutate(coord = substr(xy, 1, 1),
pair = parse_number(xy)) %>%
group_by(xy) %>%
mutate(sample = 1:n()) %>%
ungroup() %>%
select(-xy) %>%
spread(coord, val) %>%
filter(!is.na(x) & !is.na(y))