【问题标题】:Can you stack boxplots in ggplot2?你可以在ggplot2中堆叠箱线图吗?
【发布时间】:2021-04-16 04:17:43
【问题描述】:

这是我的情节的一个例子。注意箱线图是如何彼此相邻的。我想弄清楚是否有办法将箱形图堆叠在一起。

【问题讨论】:

  • 将它们堆叠在一起到底是什么意思?您是否有显示您想要的示例图像?如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
  • 如果你把position = "identity"放在geom_boxplot里面,他们就不会被“躲避”。这将使它们相互重叠,并可能使它们难以辨认。

标签: r ggplot2 boxplot


【解决方案1】:

更新 因为这是一项具有挑战性的任务,所以我走得更远: 主要的提示是在格雷戈尔·托马斯的 cmets 中。我搜索了一下,发现了这个geom_boxplot: map alpha levels to whiskers & outliers

结果: 绘图 A 可以显示为绘图 B,代码如下:

library(ggplot2)
library(cowplot)

df <- diamonds

# defining individual alpha levels
# learned here https://stackoverflow.com/questions/34618517/geom-boxplot-map-alpha-levels-to-whiskers-outliers
numVals = length(unique(iris$Species))
avals = seq(0.1, 0.4, length.out=numVals)

avalsHex = paste0("#000000", toupper(as.hexmode(round(avals*255))))

# the plots with some data tweaking
p1 <- df %>% 
  mutate(color = fct_lump(color, 2),
         mutate = fct_reorder(color, depth)) %>% 
  ggplot(aes(cut, depth))+
  geom_boxplot(aes(fill=color, alpha=color)) +
  scale_alpha_manual(values = avals) +
  scale_colour_manual(values = avalsHex) +
  theme_void()

p2 <- df %>% 
  mutate(color = fct_lump(color, 2),
         mutate = fct_reorder(color, depth)) %>% 
  ggplot(aes(cut, depth))+
  geom_boxplot(aes(fill=color, alpha=color), position = "identity") +
  scale_alpha_manual(values = avals) +
  scale_colour_manual(values = avalsHex) +
  theme_void()

plot_grid(p1, p2, labels = "AUTO")

第一个答案: 我不确定,但您可以使用coord_flip 实现一种堆叠。 请参阅我的钻石数据集示例。这意味着只显示没有点的箱线图。

ggplot(diamonds, aes(x = cut, y = depth, fill = color)) +
  geom_boxplot() +
  coord_flip()

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多