连接r ggplot2散点图中每行的每列

时间:2017-09-24 04:06:26

标签: r ggplot2

我有三列:“原创”,“pos1”,“pos2”。每行都是一个人。我想创建一个散点图,其中“原始”在x轴上,pos1和pos2值在y轴上。所以每个原件都有一个pos1点和一个pos2点。我可以创建两种不同的颜色来区分pos1和pos2点。但我想要的是为每个人在pos1和pos2之间添加一条线。如果我有100个人,那么将有100条短线,连接每个pos1和pos2。我有什么方法可以在ggplot中做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

听起来你正在寻找geom_segment。像下面这样的东西可以工作:

library(ggplot2)

ggplot(df, aes(x = original)) +
  geom_point(aes(y = pos1, col = "pos1")) +
  geom_point(aes(y = pos2, col = "pos2")) +
  geom_segment(aes(xend = original,
                   y = pos1, yend = pos2)) +
  ylab("positions") +
  scale_colour_manual(name = "Position",
                      values = c(pos1 = "red",
                                 pos2 = "blue"))

enter image description here

数据:

set.seed(1)
df <- data.frame(
  original = 1:100,
  pos1 = rnorm(100),
  pos2 = rnorm(100, mean = 5)
)

如果这对您不起作用,请分享实际数据样本。