Я пытаюсь показать блокпост и сюжет для скрипки в одном.
Я могу заполнить цвета бокса и скрипки на основе обработки. Но я не хочу, чтобы они были одного и того же цвета, я бы предпочел, чтобы сюжет для скрипки или заполнение коробки было светлее.
Кроме того, я могу получить внешние линии поля графика в разных цветах, если я добавлю col=TM
к aes
geom_boxplot
. Но тогда я не могу выбрать эти цвета или не знаю, как это сделать (теперь они автоматически становятся розовыми и синими).
Предпосылка:
Я работаю с набором данных, который выглядит примерно так:
TM yax X Zscore
Org zscore zhfa -1.72
Org zscore zfwa -0.12
Я строю z-оценки на основе X
(zhfa e.d.) для лечения (TM
).
#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"))
Теперь, половина сюжета для скрипки заполнена белым, но не обоими (что уже было бы лучше). Если бы я нарисовал geom_split_violin()
, он бы получил те же цвета, что и на поле.
Кроме того, если сцена скрипки zhfa будет на левой стороне, но она переключится и отобразится на правой стороне, в то время как она соответствует данным органического (левого) бокса.
График сейчас:
![](https://imgur.com/KiqI79P.jpg)
Я не знаю, может ли это быть решено добавлением чего-либо, связанного с scale_fill_manual, или это невозможный запрос
Пример данных:
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)))