我想在 R 和 ggplot2 中创建一个直方图,其中根据连续的 x 值填充箱。大多数教程仅通过离散值或密度/计数进行着色。
下列的这个例子 https://stackoverflow.com/questions/40284227/how-to-fill-histogram-with-color-gradient能够用彩虹刻度给垃圾箱上色:
df <- data.frame(x = runif(100))
ggplot(df) +
geom_histogram(aes(x), fill = rainbow(30))
彩虹直方图 https://i.stack.imgur.com/7CQ4I.png
我想使用颜色渐变,其中垃圾箱从蓝色(最低)到黄色(最高)。这scale_fill_gradient()
函数似乎实现了这一点,但是当我插入它代替rainbow()
为了fill
参数我收到一个错误:
> ggplot(df) +
+ geom_histogram(aes(x), fill = scale_fill_gradient(low='blue', high='yellow'))
Error: Aesthetics must be either length 1 or the same as the data (30): fill
我尝试了几种方法来为刻度提供 30 的长度,但每次都会遇到相同的错误。所以我的问题是:
- Is
scale_color_gradient
正确的功能fill
争论还是我必须使用另一种?
- 如果它是正确的功能,我如何正确提供长度?
如果您希望每个 bin 具有不同的颜色,则需要指定fill = ..x..
在美学上,这是一个必要的怪癖geom_histogram
. Using scale_fill_gradient
使用您喜欢的颜色渐变,然后产生以下输出:
ggplot(df, aes(x, fill = ..x..)) +
geom_histogram() +
scale_fill_gradient(low='blue', high='yellow')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)