使用ggplot2根据平均值为箱线图着色

时间:2016-12-16 17:52:57

标签: r ggplot2 boxplot

让我们考虑一个带有ggplot的框图:

 p <- ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot()

我希望盒子用简单的颜色填充,这取决于mpg的平均值,例如从蓝色到红色。我玩过各种小组并填充参数,但使用&#34; mean(mpg)&#34;总是回归全球意味着。

2 个答案:

答案 0 :(得分:3)

您可以创建一个新列,然后将其用于填充。

library(dplyr)
library(ggplot2)
mtcars%>%
  group_by(cyl)%>%
  mutate(mean_cyl=mean(mpg))%>%
  ggplot(aes(factor(cyl),mpg))+geom_boxplot(aes(fill=mean_cyl))+scale_fill_gradient(low="blue",high = "red")

答案 1 :(得分:3)

试试这个(用每个圆柱组的圆形平均值填充方框):

mtcars$mean <- as.factor(round(ave(mtcars$mpg, as.factor(mtcars$cyl), FUN=mean)))
ggplot(mtcars, aes(factor(cyl), mpg, fill=mean)) + geom_boxplot()

enter image description here