我想知道如何将各个主题数据点的垂直线连接到水平线。我的主要问题是x轴是分组的,没有连续变量来指定线的位置。如果我让线从组(xend)下来,我最终只为每组有一条垂直线。
这是我目前拥有的
ggplot() +
geom_point(data = df, aes(x = Group, y = Number, color = Group), position = "jitter") +
geom_hline(yintercept = 33.25)
如果我添加
geom_segment(data = df,
aes(x=Group,
xend=Group,
y=Number,
yend=33.25))
我最终得到每组一条垂直线,而不是源于每个主题
答案 0 :(得分:4)
好消息是即将推出的ggplot2版本提供了reproducible jitter。坏消息是geom_segment()
不允许抖动,因此请改用geom_linerange()
。
我们可以指定seed
如下!希望该版本即将发布!在此期间,您应该按照https://stackoverflow.com/a/21922792/5397672上的回答手动将抖动添加到数据中。
reprex::reprex_info()
#> Created by the reprex package v0.1.1.9000 on 2017-11-12
library(ggplot2)
set.seed(2)
dat <- iris[sample(1:nrow(iris), 20),]
ggplot(dat, aes(x=Species, y=Petal.Width)) +
geom_point(position = position_jitter(height = 0L, seed = 1L)) +
geom_hline(yintercept=0.75) +
geom_linerange(aes(x=Species, ymax=Petal.Width, ymin=0.75),
position = position_jitter(height = 0L, seed = 1L))