我正在使用ggplot制作箱图,其数据按2个因子变量分类.我想让盒子尺寸反映样品尺寸,varwidth = TRUE
但是当我这样做时盒子会重叠.
1)具有3×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))
Run Code Online (Sandbox Code Playgroud)
2)默认的箱形图:没有可变宽度的ggplot
ggplot(data = data, aes(y = response, x = group1, color = group2)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
我喜欢如何显示第一级分组.
现在我尝试添加可变宽度......
3)......以及我什么时候得到的 varwidth = TRUE
ggplot(data = data, aes(y = response, x = group1, color = group2)) + geom_boxplot(varwidth = T)
Run Code Online (Sandbox Code Playgroud)
无论是在主要调用中还是在语句中使用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()
Run Code Online (Sandbox Code Playgroud)
我更喜欢将事物分组以反映交叉分类
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2464 次 |
最近记录: |