在ggplot2中不同形状的点之间画一条线

时间:2019-12-06 02:01:25

标签: r ggplot2 plot graphics

这是一些虚拟数据

d = data.frame(
  x = rep(1:8,2),
  y = c(1,1.2,1.5,2,2.6,2.9,3.1,3.2,0.7,1,1.2,1.9,2.4,2.62,2.95,2.95),
  color = rep(LETTERS[1:2], each=8),
  shape = c(rep("a",6), rep("b",2), rep("a", 5), rep("b",3))
)


ggplot(d, aes(x=x,y=y,color=color,shape=shape)) + geom_point() + scale_colour_manual(values=c("darkblue", "darkred")) + scale_shape_manual(values = c(19,1))

enter image description here

我想画一条线,将不同颜色的点连接起来。因为我想在线和点之间保持间距,所以我使用了geom_pointline包中的lemon

ggplot(d, aes(x=x,y=y,color=color,shape=shape)) + geom_pointline() + scale_colour_manual(values=c("darkblue", "darkred")) + scale_shape_manual(values = c(19,1))

enter image description here

我的问题是,直线无法将不同形状的点连接在一起。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

也许aes(group = color)是您想要的。

library(lemon)

ggplot(d, aes(x = x, y = y)) +
  geom_pointline(aes(group = color, color = color, shape = shape))