《R数据可视化手册》——3.4 条形图着色

简介:

本节书摘来异步社区《R数据可视化手册》一书中的第3章,第3.4节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.4 条形图着色

问题
如何将条形图中的条形设定为不同的颜色?

方法
将合适的变量映射到填充色(fill)上即可。

这里以数据集uspopchange为例。该数据集描述了美国各州人口自2000年到2010年的变化情况。我们选取出人口增长最快的十个州进行绘图。图中会根据地区信息(东北部、南部、中北部、西部)对条形进行着色。

首先,选取出人口增长最快的十个州:

library(gcookbook) #为了使用数据
upc <- subset(uspopchange, rank(Change)>40)
upc
     State  Abb Region Change
    Arizona  AZ  West  24.6
    Colorado  CO  West  16.9
    Florida  FL  South  17.6
    Georgia  GA  South  18.3
     Idaho  ID  West  21.1
     Nevada  NV  West  35.1
North  Carolina  NC  South  18.5
South  Carolina  SC  South  15.3
      Texas  TX  South  20.6
      Utah  UT  West  23.8

接下来,将Region映射到fill并绘制条形图(见图3-9):

ggplot(upc, aes(x=Abb, y=Change, fill=Region)) + geom_bar(stat="identity")

7fb2b82e7b925460cb070ead92f7690b6ac17560

讨论
条形图的默认颜色不太吸引眼球,因此,可能需要借助函数scale_fill_brewer()或scale_fill_manual()重新设定图形颜色。这里我们调用后者。我们通过把参数指定为colour="black"将条形的边框线设定为黑色(见图3-10)。注意:颜色的映射设定是在aes()内部完成的,而颜色的重新设定是在aes()外部完成的:

ggplot(upc, aes(x=reorder(Abb, Change), y=Change, fill=Region)) +
   geom_bar(stat="identity", colour="black") +
   scale_fill_manual(values=c("#669933","#FFCC66")) +
   xlab("State")

da4175bcfee5ae8fcf3aa50c5d3e9997ca83d0d6

本例用到了reorder()函数。在本例中,根据条形图的高度进行排序比按照字母顺序对分类变量排序更有意义。

另见
更多关于使用reorder()函数将因子根据另一个变量重新水平排序的内容,可参见15.9节。

更多关于图形着色的内容,参见第12章。

相关文章
|
数据可视化 数据挖掘
R语言数据可视化-气泡图
气泡图(Bubble Chart)是一种展示三个或更多变量之间关系的二维图表。它与散点图类似,但是在每个数据点处加上了一个圆圈,圆圈的大小和第三个变量相关。因此气泡图不仅可以用于显示两个变量之间的关系,还可以同时显示第三个变量的大小或重要性,增加了数据展示的可读性和信息量。
433 0