我是新来ggplot2
和无法弄清楚如何绘制之间的垂直点的灰色线
的点/沿x轴的点。 这里是我的示例代码:
d1 <- runif(10,10,15)
d2 <- runif(10,25,30)
d3 <- rep(1:10,2)
df <- data.frame(x = d3, y = c(d1,d2))
ggplot(df, aes(x=x, y=y)) +
geom_point()
我是新来ggplot2
和无法弄清楚如何绘制之间的垂直点的灰色线
的点/沿x轴的点。 这里是我的示例代码:
d1 <- runif(10,10,15)
d2 <- runif(10,25,30)
d3 <- rep(1:10,2)
df <- data.frame(x = d3, y = c(d1,d2))
ggplot(df, aes(x=x, y=y)) +
geom_point()
如果您的实际数据结构类似于用于您的示例之一,只需添加geom_line(aes(group = d3))
的情节。
ggplot(df, aes(x=x, y=y)) +
geom_point() + geom_line(aes(group = d3))
肯定有比这更好的,但方式:
d1 <- runif(10,10,15)
d2 <- runif(10,25,30)
d3 <- rep(1:10,2)
df <- data.frame(x = d3, y = c(d1,d2))
df$place <- rep(c("min", "max") , each=10)
df_wide <- reshape(df, direction = "wide", v.names="y", timevar="place", idvar="x")
ggplot(df, aes(x=x, y=y)) +
geom_segment(aes(x=x, xend=x, y=y.min, yend=y.max),
size=1, data=df_wide, colour="grey70", linetype="dotted") +
geom_point()
虽然我不知道你的意思是“沿x轴”,也许你希望它不只是点之间的顶部延伸至底部。
你应该用geom_vline()
来做到这一点。
d1 <- runif(10,10,15)
d2 <- runif(10,25,30)
d3 <- rep(1:10,2)
df <- data.frame(x = d3, y = c(d1,d2))
ggplot(df, aes(x=x, y=y)) + geom_point() +
geom_vline(xintercept = df$x, linetype= 3, colour = "#919191")