《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章。

相关文章
|
SQL Java 应用服务中间件
Java项目防止SQL注入的四种方案
Java项目防止SQL注入的四种方案
782 0
|
8月前
|
前端开发 搜索推荐 JavaScript
《数字分身进化论:React Native与Flutter如何打造沉浸式虚拟形象编辑》
React Native与Flutter为3D头像编辑系统提供了强大支持。React Native基于JavaScript,利用React生态快速开发移动应用,通过调用原生组件实现流畅体验;Flutter以Dart为核心,借助Skia引擎提供高性能渲染和精美动画。两者均采用组件化开发,支持实时预览、手势交互及丰富动画效果。在3D头像编辑中,用户可调整五官、选择发型与服饰,并享受高效反馈与沉浸式体验。这些技术助力构建个性化社交应用,满足用户需求并引领行业潮流。
136 11
|
存储 缓存 Linux
14.11 Linux如何查看硬盘的读写性能?
除了 CPU 和内存,硬盘读写(I/O)能力也是影响 Linux 系统性能的重要因素之一。本节将介绍几个可用来查看硬盘读写性能的系统命令,并教大家如何通过这些命令的输出结果,判断出当前系统中硬盘是否处于超负荷运转。
2026 0
14.11 Linux如何查看硬盘的读写性能?
|
存储 Java 索引
JavaSE——集合框架一(6/7)-Set系列集合:LinkedHashSet的底层原理、TreeSet集合(介绍,自定义排序规则,排序示例)
JavaSE——集合框架一(6/7)-Set系列集合:LinkedHashSet的底层原理、TreeSet集合(介绍,自定义排序规则,排序示例)
168 1
|
弹性计算 网络安全 数据安全/隐私保护
跨账号VPC间互访|学习笔记
快速学习跨账号VPC间互访
跨账号VPC间互访|学习笔记
|
SQL Java 数据库连接
Mybatis多表查询之一对多、多对一
Mybatis多表查询之一对多、多对一
274 0
|
JavaScript 前端开发
Javascript之“树“
Javascript之“树“
|
XML 存储 Java
【SSM直击大厂】第十一章:Spring 事务控制
📋📋 精彩摘要:在实际开发中,操作数据库时都会涉及到 事务管理 问题,为此 Spring 提供了专门用于 事务 处理的API。 Spring 的 事务管理 简化了传统的 事务管理 流程,并且在一定程度上减少了开发者的工作量。
227 0
|
.NET 数据库连接 数据库
ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity Framework 的基本工作原理和 DbContext ,我们也创建了一个自己的 HelloWorldDBContext。
1672 0

热门文章

最新文章