根据值渐变

时间:2017-02-27 20:10:51

标签: r plot ggplot2

我想使用y根据color gradient轴上的值为箱线图着色。我添加了填充红色到蓝色渐变的图例,但我不知道如何将这些颜色添加到每个框中。

library(ggplot2)

ggplot(mpg, aes(class, hwy))+ geom_boxplot(aes(colour = hwy))+
 scale_fill_gradient2(low = "red", high = "blue", 
   midpoint = 25, limit = c(0,50), space = "Lab", 
   name="hwy")

1 个答案:

答案 0 :(得分:2)

我认为你不能。 ggplot documentation只提到一个因子着色,我只看到在x轴上指定的因子。

当你考虑它时你的陈述是不确定的,方框图中的内容决定fill?中位数,上界,下界?

更新

这并不是你要求的,而是它的结束。

mpg %>% 
  group_by(class) %>% 
  mutate(mean.hwy= mean(hwy)) %>% 
  ggplot( aes(class, hwy)) +
    geom_boxplot() +
    stat_summary(fun.y= "mean",
                 aes(y=mean.hwy,color=mean.hwy),
                 geom = "point") +
    scale_color_gradient2(low = "red", 
                          high = "blue", 
                          midpoint = 25, 
                          limit = c(0,50), 
                          space = "Lab", 
                          name="hwy")

出于某种原因,我无法通过中位数来实现这一点,我想这会更有意义,但希望这会让你更接近你的目标。