gpt4 book ai didi

r - 具有交叉分类组的ggplot中的箱线图宽度

转载 作者:行者123 更新时间:2023-12-03 23:57:42 28 4
gpt4 key购买 nike

我正在用 ggplot 制作箱线图,其中的数据按 2 个因子变量分类。我想让盒子大小通过 varwidth = TRUE 反射(reflect)样本大小但是当我这样做时,盒子会重叠。

1) 一些具有 3 x 2 结构的样本数据

data <- data.frame(group1= sample(c("A","B","C"),100, replace = TRUE),group2= sample(c("D","E"),100, replace = TRUE) ,response = rnorm(100, mean = 0, sd = 1))

2)默认箱线图:没有可变宽度的ggplot
ggplot(data = data, aes(y = response, x = group1, color = group2)) + geom_boxplot()

enter image description here

我喜欢第一级分组的显示方式。
现在我尝试添加可变宽度...

3) ...以及我在 varwidth = TRUE 时得到的结果
ggplot(data = data, aes(y = response, x = group1, color = group2)) + geom_boxplot(varwidth = T)

enter image description here

无论我是否使用 color = group2 似乎都会发生这种重叠或 group = group2在主叫 ggplot并在 geom_boxplot陈述。大惊小怪 position_dodge似乎也没有帮助。

4)我不喜欢视觉上的解决方案是通过组合我的 group1 和 group2 来制作独特的因素
data$grp.comb <- paste(data$group1, data$group2)

ggplot(data = data, aes(y = response, x = grp.comb, color = group2)) + geom_boxplot()

enter image description here

我更喜欢将事物分组以反射(reflect)交叉分类

5)前进的道路:
我想要么 a) 弄清楚如何制作 varwidth = TRUE不会导致框重叠或 b) 手动调整组合组之间的空间,使第一级分组内的框更靠近。

最佳答案

我认为使用 facet_wrap 可以最好地解决您的问题.

    library(ggplot2)
data <- data.frame(group1= sample(c("A","B","C"),100, replace = TRUE), group2=
sample(c("D","E"),100, replace = TRUE) ,response = rnorm(100, mean = 0, sd = 1))

ggplot(data = data, aes(y = response, x = group2, color = group2)) +
geom_boxplot(varwidth = TRUE) +
facet_wrap(~group1)

这给出了:
enter image description here

关于r - 具有交叉分类组的ggplot中的箱线图宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com