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

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

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

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

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

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

时间: 2024-10-05 23:37:18

《R数据可视化手册》一3.4 条形图着色的相关文章

《R数据可视化手册》一第3章 条形图3.1 绘制简单条形图

第3章 条形图 R数据可视化手册 条形图也许是最常用的数据可视化方法,通常用来展示不同的分类下(在x轴上)某个数值型变量的取值(在y轴上).例如,条形图可以用来形象地展示四种不同商品的价格情况,但不适宜用来展示商品价格随时间的变动趋势,因为这里时间是一个连续变量--尽管我们也可以这么做,后面会看到这种情形. 绘制条形图时需特别注意一个重要的细节:有时条形图的条形高度表示的是数据集中变量的频数,有时则表示变量取值本身.牢记这个区别--这里极易混淆,因为两者与数据集的对应关系不同,但又对应同样的术语

《R数据可视化手册》——第3章 条形图

第3章 条形图 R数据可视化手册条形图也许是最常用的数据可视化方法,通常用来展示不同的分类下(在x轴上)某个数值型变量的取值(在y轴上).例如,条形图可以用来形象地展示四种不同商品的价格情况,但不适宜用来展示商品价格随时间的变动趋势,因为这里时间是一个连续变量--尽管我们也可以这么做,后面会看到这种情形. 绘制条形图时需特别注意一个重要的细节:有时条形图的条形高度表示的是数据集中变量的频数,有时则表示变量取值本身.牢记这个区别--这里极易混淆,因为两者与数据集的对应关系不同,但又对应同样的术语.

《R数据可视化手册》一导读

前 言 R数据可视化手册几年前读研时我开始用R,主要用来分析我在科研工作中收集到的数据.我使用R首先是想摆脱SPSS这样的统计软件的禁锢,即严格的环境和死板的分析.更何况,R是免费的,所以我用不着说服别人为我购买一套这样的软件--这对一个穷研究生来说是相当的重要!此后,随着我对R的了解不断深入,我才发现原来R还可以绘制出非常优秀.动人的数据图形. 本书的每个"技巧"中,都列出了一个问题和对应的解决方法.在大多数情况下,我提供的并不是R中唯一的实现方法,但却是我认为的最佳方案.R如此受欢

《R数据可视化手册》——导读

前言 R数据可视化手册几年前读研时我开始用R,主要用来分析我在科研工作中收集到的数据.我使用R首先是想摆脱SPSS这样的统计软件的禁锢,即严格的环境和死板的分析.更何况,R是免费的,所以我用不着说服别人为我购买一套这样的软件--这对一个穷研究生来说是相当的重要!此后,随着我对R的了解不断深入,我才发现原来R还可以绘制出非常优秀.动人的数据图形. 本书的每个"技巧"中,都列出了一个问题和对应的解决方法.在大多数情况下,我提供的并不是R中唯一的实现方法,但却是我认为的最佳方案.R如此受欢迎

《R数据可视化手册》一第2章 快速探索数据2.1 绘制散点图

第2章 快速探索数据 R数据可视化手册虽然本书中大部分图形都是通过ggplot2包绘制的,但这并不是R绘制图形的唯一方法.要快速探索数据,有时使用R基础包中的绘图函数会很有用.这些函数随R软件默认安装,无需另行安装附加包.它们简短易输入,处理简单问题时使用方便,且运行速度极快. 如果你想绘制较为复杂的图形,那么,转用ggplot2包通常是更好的选择.部分原因在于ggplot2提供了一个统一的接口和若干选项来替代基础绘图系统中对图形的修修补补和各种特例.一旦掌握了ggplot2的工作机制,你就可以

《R数据可视化手册》一第1章 R基础1.1 安装包

第1章 R基础 R数据可视化手册本章包括以下基础知识:安装包.使用包和加载数据. 如果你想快速上手,本书大多数技巧都需要安装ggplot2和gcookbook包.运行下面命令来安装: install.packages(c("ggplot2", "gcookbook"))然后,在每个R会话中,你需要在运行本书的例子之前先加载它们: library(ggplot2)library(gcookbook)附录A提供了一个关于ggplot2绘图包的简介,主要是面向不熟悉ggp

《R数据可视化手册》——第1章 R基础

第1章 R基础 R数据可视化手册本章包括以下基础知识:安装包.使用包和加载数据. 如果你想快速上手,本书大多数技巧都需要安装ggplot2和gcookbook包.运行下面命令来安装: install.packages(c("ggplot2", "gcookbook"))``` 然后,在每个R会话中,你需要在运行本书的例子之前先加载它们: library(ggplot2)library(gcookbook)`附录A提供了一个关于ggplot2绘图包的简介,主要是面向不

《R数据可视化手册》——第2章 快速探索数据

第2章 快速探索数据 R数据可视化手册虽然本书中大部分图形都是通过ggplot2包绘制的,但这并不是R绘制图形的唯一方法.要快速探索数据,有时使用R基础包中的绘图函数会很有用.这些函数随R软件默认安装,无需另行安装附加包.它们简短易输入,处理简单问题时使用方便,且运行速度极快. 如果你想绘制较为复杂的图形,那么,转用ggplot2包通常是更好的选择.部分原因在于ggplot2提供了一个统一的接口和若干选项来替代基础绘图系统中对图形的修修补补和各种特例.一旦掌握了ggplot2的工作机制,你就可以

《R数据可视化手册》——3.1 绘制简单条形图

3.2 绘制簇状条形图 问题如何绘制基于某个分类变量的簇状条形图? 方法将分类变量映射到fill参数,并运行命令geom_bar(position="dodge"). 下面以cabbage_exp数据集为例演示一下绘图过程,cabbage_exp数据集包含两个分类变量Cultivar和Date及一个连续型变量Weight. library(gcookbook) #为了使用数据 cabbage_exp Cultivar Date Weight c39 d16 3.18 c39 d20 2

《R数据可视化手册》——3.7 绘制堆积条形图

3.7 绘制堆积条形图 问题如何绘制堆积条形图? 方法使用geom_bar()函数,并映射一个变量给填充色参数(fill)即可.该命令会将Date对应到x轴上,并以Cultivar作为填充色,如图3-16所示. library(gcookbook) # 为了使用数据 ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + geom_bar(stat="identity") 讨论弄清楚图形对应的数据结构有助于理解图形的绘制过