zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

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

数据 可视化 手册 3.4 条形图 着色
2023-09-11 14:17:31 时间

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

3.4 条形图着色

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

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

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

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

library(gcookbook) #为了使用数据

upc - subset(uspopchange, rank(Change) 40)

 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")


8df3bb9716cdf3d6896795c9be958cbe244400bd

讨论
条形图的默认颜色不太吸引眼球,因此,可能需要借助函数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")


e377a6664d8ae533c2530da8867388011bbdfe74

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

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

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


异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。