0

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

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

2 回答 2

1

我会对此发表评论,但还没有足够的代表......

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

当您有一个连续的数据集时,您可以使用以下 ggplot2 命令:scale_colour_gradient

编辑

你可以试试这个:ggplot(diamonds, aes(clarity, fill=..count..)) + geom_bar(),但你失去了剪辑信息:

在此处输入图像描述

于 2013-08-20T13:57:09.150 回答
0

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

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

产量

在此处输入图像描述

更新:

根据下面 OP 的评论,OP 似乎希望映射alpha到 的因子水平cutalpha随着因子水平的增加而减少(即,alpha“公平”应该高于)alphaIdeal我们可以手动分配 alphausing 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_bardarkblue出来看起来相当紫色)。

在此处输入图像描述

于 2013-08-20T14:24:56.593 回答