如何用连续着色绘制条形图

时间:2013-08-20 13:24:17

标签: r ggplot2

如何绘制连续着色的条形图,类似于scale_fill_brewer()但更连续?

ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()

2 个答案:

答案 0 :(得分:1)

我会对此发表评论,但尚未足够的代表......

您对钻石数据集的问题在于数据是离散的,这意味着属于它的每个值/观察都是独立的和独立的。为了进行连续填充,您需要连续数据(属于它的值/观测可以采用有限或无限区间内的任何值)。

如果有连续数据集,可以使用以下ggplot2命令:scale_colour_gradient

修改

你可以试试这个:ggplot(diamonds, aes(clarity, fill=..count..)) + geom_bar(),但是你放弃了剪切信息:

enter image description here

答案 1 :(得分:0)

Color Brewer内置了顺序配色方案 - 检查colorbrewer2.org。例如,

ggplot(diamonds, aes(clarity, fill=cut)) + 
  geom_bar() + 
  scale_fill_brewer(palette="PuBu")

产量

enter image description here

更新

根据OP的评论,OP似乎希望将alpha映射到cut的因子级别,alpha随着因子级别的增加而减少(即{ {1}}对于alpha,“Fair”应该高于alpha。我们可以使用Ideal手动分配alpha,但更简单的解决方案是使用scale_alpha_manual定义scale_alpha_discrete参数反向':

levels

当然,您可以使用ggplot(diamonds, aes(clarity, alpha=cut)) + geom_bar(fill="darkblue") + scale_alpha_discrete(range=c(1, 0.2)) #Note that range is ordered 'backwards' 参数调整颜色fillgeom_bar看起来相当紫色。)

enter image description here