繁体   English   中英

你能在 ggplot2 中堆叠箱线图吗?

[英]Can you stack boxplots in ggplot2?

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

更新因为这是一项具有挑战性的任务,所以我更进一步:主要提示在 Gregor Thomas 的评论中。 我搜索了一下,发现了这个geom_boxplot:map alpha levels to胡须和异常值

结果: Plot A 可以显示为 plot 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()

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM