我有一个相当大的数据集,与以下示例非常相似:
a <-data.frame(x=sort(c(replicate(4,c(1:4,5:8,9:12,13:16,17:20,21:25)))),y=c(rnorm(100)),z=c(replicate(20,"a"),replicate(20,"b"),replicate(20,"c"),replicate(20,"d"),replicate(20,"e")))
# install and enable ggplot2, if necessary
# install.packages('ggplot2')
library(ggplot2)
ggplot(a, aes(x=x, y=y, col=z)) + geom_point(size=3)
我想通过每组堆叠点绘制颜色匹配的垂直线段,但只能通过这些点。在这种情况下,abline() 不会成功。我怀疑需要使用 segments() 或 lines(),但我不知道如何在不手动输入每个起点/终点的情况下自动执行此过程。
更新
重温最终代码:
a <-data.frame(x=sort(c(replicate(4,c(1:4,5:8,9:12,13:16,17:20,21:24)))),y=c(rnorm(96)),z=c(replicate(24,"a"),replicate(24,"b"),replicate(24,"c"),replicate(24,"d")))
ggplot(a, aes(x=x, y=y, col=z)) +
geom_point(size=3) +
stat_summary(aes(color=z), fun.ymin = min, fun.ymax = max, fun.y = max, show.legend = F)
以下是当我将磅值更改为 1 时发生的情况:
如何控制所有点的大小?
最佳答案
您可以使用stat_summary
(不确定为什么必须使用fun.y
)
ggplot(a, aes(x=x, y=y, col=z)) +
geom_point(size=3) +
stat_summary(fun.ymin = min, fun.ymax = max,
aes(colour=z),
fun.y = max)
如果您希望图例只显示点,您可以将 show.legend=F
添加到 stat_summary()
关于r - 通过散点图上垂直堆叠的点绘制线段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953196/