如何绘制具有连续着色的条形图,类似于scale_fill_brewer()
但更连续?
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
我会对此发表评论,但还没有足够的代表......
您对 Diamonds 数据集的问题是数据是离散的,这意味着属于它的每个值/观察值都是不同的和独立的。为了进行连续填充,您需要连续数据(属于它的值/观察值可能在有限或无限区间内采用任何值)。
当您有一个连续的数据集时,您可以使用以下 ggplot2 命令:scale_colour_gradient。
编辑
你可以试试这个:ggplot(diamonds, aes(clarity, fill=..count..)) + geom_bar()
,但你失去了剪辑信息:
Color Brewer 具有内置的顺序配色方案 - 检查colorbrewer2.org。例如,
ggplot(diamonds, aes(clarity, fill=cut)) +
geom_bar() +
scale_fill_brewer(palette="PuBu")
产量
根据下面 OP 的评论,OP 似乎希望映射alpha
到 的因子水平cut
,alpha
随着因子水平的增加而减少(即,alpha
“公平”应该高于)alpha
。Ideal
我们可以手动分配 alpha
using 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'
当然,您可以使用fill
参数来调整颜色geom_bar
(darkblue
出来看起来相当紫色)。