首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ggplot2读书笔记3:图层的使用(一)图层基础、怎样加标签、注释

一点碎碎念:今天开始看第三章Toolbox, 主要讲的是图层的用法,在图像的基础上,图层可以让plot的信息更加丰富和完整,于是就有了怎样加标签,加注释等等。这些内容虽然不难但是很琐碎,由于R基础薄弱,有些代码理解起来需要时间。所以,在这里我想先以读书笔记和翻译的形式,记录为主,尽量去逐字逐句理解。下面是第三章前四节的主要内容:

使用图层的三个主要目的:

展示数据:绘制原始数据时唯一的一层(数据层)

展示数据的统计摘要:在数据背景下展示模型的统计预测效果,模型层通常绘制在数据层之上

添加额外的元数据(metadata)、上下文信息和注释:也称背景层,了解数据的背景信息或强调数据中的某些特征,一般在最后绘制。

1. 基本图形类型

几何对象是ggplot2的基本组成部分,可以独立构建图形。他们都是二维的,主要函数有 , , , , , 等等。这些函数包括x,y两个主要属性,另外也可以接受 和 两个图形属性,他们构成了基本的数据层。

我们可以通过使用 来添加图层

以上命令运行后可依次生成散点图、含标签的散点图、条形图、色深图、线条图、面积图、路径图和多边形图等八个图,其中 是给各个图片添加注释/命名

2. 添加标签(label)

主要函数 :和散点类似,就是将point换成了文字。它包括以下几种参数:

:设置字体大小

:设置倾斜角度

:可设置字体,下面代码中的 , , 代表三种字体, 是默认字体。

此外还有两个字体安装包

– showtext, https://github.com/yixuan/showtext, by Yixuan Qiu, makes GD-independent plots by rendering all text as polygons.

– extrafont, https://github.com/wch/extrafont, by Winston Chang, converts fonts to a standard format that all devices can use.

:可设置粗体或斜体, 默认普通值, 粗体、 斜体。

和 可以设置字体对齐方式。 (“bottom”, “middle”, “top”, “inward”, “outward”); (“left”, “center”, “right”, “inward”, “outward”)。最常用的路线之一是 :它将文本对齐到主画面的中间:

参数可以设置文字距原坐标点的距离,在散点和文字同时存在时很有必要,这是文字是一个注释的作用,如果不添加该参数,点和文字就会重合。

:查找重复值。当注释中有大量重复时,设置 可以自动删除重复标签。

以耗油量数据为例:

另外,与 类似的是 ,它与geom_text的区别自动在文字后方绘制一个圆角矩形标签,当需要在复杂的背景上标注文字时可以使用。

学会了在图中添加标签,可以替代图例

3. 注释(Annotations)

注释可以在你的图上添加一些额外的元数据,可以使用以下函数:

:在指定点添加标签(见上文)

:可强调图形中感兴趣的矩形区域。包括 , , ,

; ; :在图形中添加线条; 可以用来添加箭头

; :向图形添加垂直线或水平线

:向图形添加任意斜率和截距地直线

然后我们用“失业率数据集”来举例:

下面我们想在图中展现一下不同政党执政时期失业率的高低情况:

(疑问: 这个对象的数据不知道从哪里来的)

生成图片:

如果我们想使用同样的方法在图片中添加一个单独的注释,方法有点复杂,因为首先要创建一个数据框:

上述代码可以用 来简化 部分:

生成图片:

注释,在分面状态下的组间比较的时也非常有用。下面要做一组关于钻石质量(carat)和价格(price)比较的2d热图,按照切割品质(cut)进行分面:

参考资料:

Hadley Wickham(2016). ggplot2. Springer International Publishing. doi: 10.1007/978-3-319-24277-4

《R语言应用系列丛书·ggplot2:数据分析与图形艺术》

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G170G500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券