我正在尝试在分组图中创建成对的比较线。我可以像这样在未分组的图中创建线条:
df <- iris %>%
group_by(Species) %>%
mutate(Pairs = row_number()) %>%
gather(variable, value, -c(Species, Pairs)) %>%
filter(variable == "Petal.Length")
ggplot(df, aes(x = Species, y = value, color = Species)) +
geom_point() +
geom_line(aes(group = Pairs), color = "#444444")
但是,如果我尝试按variable
对数据进行分组(这将使我有可能绘制多个分组的变量),则这些行将无法正确连接,但看起来是正确的长度:
ggplot(df, aes(x = variable, y = value, color = Species)) +
geom_point(position = position_dodge(0.7)) +
geom_line(aes(group = Pairs), color = "#444444")
以这种方式绘制的好处是,我可以绘制多个变量并将它们分组在一起。
df2 <- iris %>%
group_by(Species) %>%
mutate(Pairs = row_number()) %>%
gather(variable, value, -c(Species, Pairs)) %>%
filter(variable %in% c("Petal.Length", "Sepal.Length"))
ggplot(df2, aes(x = variable, y = value, color = Species)) +
geom_point(position = position_dodge(0.7)) +
geom_line(aes(group = Pairs), color = "#444444")
有没有办法使线连接到它们各自的点?
将变量(例如Sepal.Length
,Petal.Length
等在x轴上绘制并分组在一起,以使来自Sepal.Length
的值不会混淆使用Petal.Length
中的值,即使同时绘制了两个变量。这些图中的比较与第一个图中的比较相同(即,通过Species
)。我创建了一个名为Pairs
的列,其中包含每个样本的数字。我想使用Pairs
中的信息将每个Species
中的各个点与一条连接线链接起来,就像上面第一幅图中的情况一样。