ggplot箱线图+填充+颜色布鲁尔光谱

2024-01-04

我似乎无法fill使用 color Brewer 绘制连续值的箱线图,我知道它一定只是某个地方的简单语法交换,因为我可以根据连续值调整框的轮廓。这是我正在使用的数据:

data <- data.frame(
    value = sample(1:50),
    animals = sample(c("cat","dog","zebra"), 50, replace = TRUE),
    region = sample(c("forest","desert","tundra"), 50, replace = TRUE)
)

我想制作一个镶板箱线图,按中值“值”排序,每个框的颜色填充深度随着“值”的增加而增加(我知道这是多余的,但为了示例请耐心等待)

(数据排序):

orderindex <- order(as.numeric(by(data$value, data$animals, median)))
data$animals <- ordered(data$animals, levels=levels(data$animals)[orderindex])

如果我用面板创建箱线图,我可以调整轮廓的颜色:

library(ggplot2)
first <- qplot(animals, value, data = data, colour=animals)
second <- first + geom_boxplot() + facet_grid(~region)
third <- second + scale_colour_brewer()
print(third)

但我想做我对轮廓所做的事情,但是用fill每个盒子的颜色(因此每个盒子随着“值”的增加而变暗)。我认为这可能是将“scale_colour_brewer()”参数放在 geom_boxplot 的美学参数中的问题,即

second <- first + geom_boxplot(aes(scale_colour_brewer())) + facet_grid(~region)

但这似乎并不能解决问题。我知道这是这个“scale_colour_brewer”参数的定位问题;我只是不知道它去哪里了!

(这里有一个类似的问题,但不是quite我正在寻找什么,因为盒子的颜色不会沿着具有某些连续值的光谱/梯度增加;看起来这些值基本上是因素:向箱线图添加颜色 - “连续值提供给离散比例”错误 https://stackoverflow.com/questions/10805643/ggplot2-add-color-to-boxplot-continuous-value-supplied-to-discrete-scale-er,以及 ggplot 站点上带有 cars 包的示例:http://docs.ggplot2.org/0.9.3.1/geom_boxplot.html http://docs.ggplot2.org/0.9.3.1/geom_boxplot.html当我将“fill”设置为“value”时,似乎不起作用......我收到错误: 单位错误(tic_pos.c,“mm”):“x”和“单位”的长度必须> 0) )


如果您需要为箱线图设置填充,则不要color=animals use fill=animals并以同样的方式替换scale_color_brewer() with scale_fill_brewer().

qplot(animals, value, data = data, fill=animals)+ 
  geom_boxplot() + facet_grid(~region) + scale_fill_brewer()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot箱线图+填充+颜色布鲁尔光谱 的相关文章

随机推荐