来自分组散点图

时间:2017-11-11 22:09:35

标签: r ggplot2

我想知道如何将各个主题数据点的垂直线连接到水平线。我的主要问题是x轴是分组的,没有连续变量来指定线的位置。如果我让线从组(xend)下来,我最终只为每组有一条垂直线。

这是我目前拥有的

without vertical lines

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))

我最终得到每组一条垂直线,而不是源于每个主题

1 个答案:

答案 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))