【问题标题】:Create a lollipop chart to compare groups创建棒棒糖图表以比较组
【发布时间】:2017-07-28 05:32:28
【问题描述】:

我有以下数据框

library(ggplot2)

set.seed(149)

x <- data.frame(
  region = factor(rep(1:10, each = 2)),
  group = rep(c("O", "E"), 10),
  mean = sample(1:2, 20, replace = TRUE)
)

x

   region group mean
1       1     O    2
2       1     E    1
3       2     O    1
4       2     E    2
5       3     O    1
6       3     E    1
7       4     O    1
8       4     E    1
9       5     O    1
10      5     E    2
11      6     O    2
12      6     E    2
13      7     O    1
14      7     E    1
15      8     O    1
16      8     E    1
17      9     O    1
18      9     E    2
19     10     O    1
20     10     E    1

我正在尝试创建一个棒棒糖图表,这样我就可以在每个区域(“O”或“E”)之间进行简单的比较。我会制作一个哑铃图,但是该地区的很多两组都是相同的,所以哑铃图最终看起来很像点图。

这是我目前所拥有的......

ggplot(x, aes(y = region, x = mean, label = mean, fill = group, colour = group)) +
  geom_segment(aes(x = 0, y = region, xend = mean, yend = region), color = "grey50", size = 0.75) +
  geom_point(size = 3) +
  geom_text(nudge_x = 1.5, angle = -45)

基本上,对于每个区域,我想绘制两条线,一条用于“O”组,另一条用于“E”组。

【问题讨论】:

  • ggalt 包中有geom_lollipop

标签: r dataframe ggplot2


【解决方案1】:

我们可以通过使用geom_linerange(“棍子”)、geom_point(“糖果”)以及指定position = position_dodge来实现这一点:

ggplot(x)+
    geom_linerange(aes(x = region, ymin = 0, ymax = mean, colour = group), 
                   position = position_dodge(width = 1))+
    geom_point(aes(x = region, y = mean, colour = group),
               position = position_dodge(width = 1))+
    coord_flip()

【讨论】:

    【解决方案2】:

    分面也可以完成任务,当你有一堆类别(即不仅仅是两个,而是 4、6 等)时可能特别有用

    ggplot(x, aes(y = region, x = mean, label = mean, fill = group, colour = group)) +
        geom_segment(aes(x = 0, y = region, xend = mean, yend = region), color = "grey50", size = 0.75) +
        geom_point(size = 3) +
        facet_wrap(~group)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 2014-12-15
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多