我试图在其中显示一个箱形图和一个小提琴图。
我可以根据处理情况填写箱形图和小提琴图的颜色。但是,我不希望它们使用完全相同的颜色,我希望小提琴图或箱线图填充物更轻。
另外,如果我将col=TM
添加到aes
的{{1}}中,则能够获得不同颜色的箱线图。但是,那么我就无法选择这些颜色或不知道该怎么做(它们现在会自动变成粉红色和蓝色)。
背景:
我正在使用看起来像这样的数据集:
geom_boxplot
我正在根据每次治疗(TM yax X Zscore
Org zscore zhfa -1.72
Org zscore zfwa -0.12
的{{1}}(zhfa e.d.)绘制z分数。
X
现在,小提琴图的一半用白色填充,但不是两个都用(这会更好)。如果我绘制TM
,它将获得与箱图完全相同的颜色。
此外,zhfa的小提琴图应位于左侧,但会切换并显示在右侧,同时与有机(左)箱形图的数据匹配。
现在的图形:
我不知道是否可以通过添加与scale_fill_manual相关的内容来解决该问题,或者这是否是不可能的请求
样本数据:
#Colours
ocean = c('#BBDED6' , '#61C0BF' , '#FAE3D9' , '#FFB6B9' )
## Plot ##
z <- ggplot(data = data, aes(x = X, y = Zscore,fill=TM)) +
geom_split_violin(col="white", fill="white") +
geom_boxplot(alpha = 1, width=0.3, aes(fill=TM), position = position_dodge(width = 0.3))
z + theme(axis.text = element_text(size = 12),legend.position="top") +
stat_compare_means(method="t.test", label.y=2.8, label.x=0.3, size=3) +
scale_fill_manual(values=ocean, labels=c("Mineral fertilizer", "Organic fertilizer"))
答案 0 :(得分:0)
您可以在数据中添加与TM
相同结构但值不同的其他列,然后缩放填充:
样本数据:
data <- data.frame(TM = c(rep("org", 5), rep("min", 5),rep("org", 5), rep("min", 5),rep("org", 5), rep("min", 5)),
Zscore = runif(30,-2,2),
X = c(rep("zwfa", 10), rep("zhfa", 10), rep("zbfa", 10)))
开始解决方案:
data <- data %>% mutate(TMm = c(rep("orgM", 5), rep("minM", 5),rep("orgM", 5), rep("minM", 5),rep("orgM", 5), rep("minM", 5)))
#Colours
ocean = c('#BBDED6' , '#FAE3D9', '#61C0BF' , '#FFFFFF')
## Plot ##
z <- ggplot(data = data, aes(x = X, y = Zscore,fill=TM)) +
geom_split_violin(mapping = aes(fill=TMm)) +
geom_boxplot(alpha = 1, width=0.3, aes(fill=TM), position = position_dodge(width = 0.3))
z + theme(axis.text = element_text(size = 12),legend.position="top") +
stat_compare_means(method="t.test", label.y=2.8, label.x=0.3, size=3) +
scale_fill_manual(breaks = c("org", "min"), values=ocean, labels=c("Mineral fertilizer", "Organic fertilizer"))
在数据中,您可能必须将breaks = c("org", "min")
更改为TM
变量中的因子水平
或者如果您想要整个小提琴图为白色:
ocean = c('#BBDED6' , '#FFFFFF', '#61C0BF' , '#FFFFFF')
新剧情: