要改变小提琴图的颜色,您可以使用 fill = variable,如下所示:
要更改小提琴图的颜色,使用 fill = 变量,像这样:
ggplot(diamonds, aes(x=cut,y=carat)) + geom_violin(aes(fill=cut))
同样适用于箱线图。
ggplot(diamonds, aes(x=cut,y=carat)) + geom_boxplot(aes(fill=cut))
![enter image description here](https://istack.dev59.com/lxG9Y.webp)
但是,无论您选择什么值作为颜色变量,每个切割的值都必须相同。也就是说,如果您想使用平均深度/切割作为颜色变量,您需要对其进行编码。
使用dplyr将钻石按切割分组,并使用summarize获得平均深度(或任何其他变量)。
library(dplyr)
diamonds_group <- group_by(diamonds, cut)
diamonds_group <- summarize(diamonds_group, Mean_Price = mean(price))
然后我使用diamonds2作为diamonds的副本来操纵数据集。
diamonds2 <- diamonds
我将合并两个数据框以获取Mean_Depth变量,并将其应用于diamonds2。
diamonds2 <- merge(diamonds2, diamonds_group)
现在我可以使用平均深度作为颜色变量来绘制它。
ggplot(diamonds2, aes(x=cut,y=carat)) + geom_boxplot(aes(fill=Mean_Price)) + scale_fill_gradient2(midpoint = mean(diamonds2$price))
![enter image description here](https://istack.dev59.com/9OeeF.webp)