搜索
查看: 556|回复: 0

[R] 慧美——R for data science 第21章 使用ggplot2进行图形化沟通

[复制链接]

39

主题

40

帖子

289

积分

中级会员

Rank: 3Rank: 3

积分
289
发表于 2018-11-28 23:10:39 | 显示全部楼层 |阅读模式
R for data science   第21章  使用ggplot2进行图形化沟通
21.1 简介
  • 本章将再次重点介绍 ggplot2。我们还会使用 dplyr 包的一些功能来进行数据处理,并介绍ggplot2 的几个扩展包,其中包括 ggrepel 和 viridis。

  • 我们不用加载这些扩展包,而是选择使用 :: 表示法显式地引用其中的函数,这样可以更清楚地分辨出哪些函数是 ggplot2 的内置函数,哪些函数来自于其他扩展包

21.2 标签
  • 可以 使用 labs() 函数来添加标签
    ggplot(mpg, aes(displ, hwy)) +
    geom_point(aes(color=class)) +
    geom_smooth(se=FALSE) +
    labs(
       title=paste(
         "Fuel efficiency generally decreases with"
         "engine size"
      )
    • subtitle 可以在标题下以更小的字体添加更多附加信息。
    • caption 可以在图形右下角添加文本,常用于描述数据来源
      ggplot(mpg, aes(displ, hwy)) +geom_point(aes(color=class)) +geom_smooth(se=FALSE) +
      labs(
              x="Engine displacement (L)",
              y="Highway fuel economy (mpg)",
              colour="Car type"
      )

21.3 注释
  • 除了为图形中的主要部分添加标签,我们还经常需要为单个观测或分组观测添加标签。可供我们使用的第一个工具是 geom_text() 函数,其用法基本与 geom_point() 函数相同,但具有一个额外的图形属性:label。这使得我们可以向图形中添加文本标签。
  • 可以使用 geom_hline() 和 geom_vline() 函数添加参考线。我们经常使用加粗(size = 2) 和白色(color = white)的直线作为参考线,并将它们绘制在基本数据层的下面。这 样的参考线既清晰可见,又不至于喧宾夺主,影响我们查看数据。
  • 可以使用 geom_rect() 函数在我们感兴趣的数据点周围绘制一个矩形。矩形的边界由图 形属性 xmin、xmax、ymin 和 ymax 确定。
  • 可以使用 geom_segment() 函数及 arrow 参数绘制箭头,指向需要关注的数据点。使用图 形属性 x 和 y 来定义开始位置,使用 xend 和 yend 来定义结束位置。

21.4 标度
  • 标度控制着从数据值到图形属性的映射,它可以将数据转换为视觉上可以感知的东西。一般情况下,ggplot2 会自动向图表中添加标度。

  • 注意标度的命名模式:scale_ 后面是图形属性的名称,然后是 _,再然后是标度的名称。默认情况下,标度是以变量最可能的类型来命名的:连续型、离散型、日期时间型或日期型。还有很多非默认标度

  • 影响坐标轴刻度与图例项目外观的主要参数有两个:breaks 和 labels。breaks 控制坐标轴刻度的位置,以及与图例项目相关的数值显示。labels 控制与每个坐标轴刻度或图例项目相关的文本标签。breaks 的最常见用途是替换默认的刻度。可以用同样的方式来使用 labels(与 breaks 长度相同的字符向量)。你还可以将其设置为 NULL,这样可以不显示刻度标签

  • 可以使用 breaks 和 labels 控制图例的外观。坐标轴和图例统称为引导元素。坐标轴用于表示 x 和 y 图形属性;图例则用于表示其他的引导性信息。breaks和labels最常用于调整坐标轴,也可用于调整图例。

  • 主题的作用就是控制图形中与数据无关的部分。主题设置中的 legend.position 可以控制图例的位置 。要控制图例的整体位置,需要使用theme()函数进行设置。

base<-ggplot(mpg, aes(displ, hwy)) +
      geom_point(aes(color=class))
base+theme(legend.position="left")
base+theme(legend.position="top")
base+theme(legend.position="bottom")
base+theme(legend.position="right") # 默认设置
还可以使用 legend.positon="none"来取消整个图例的显示。
  • 标度替换
    • 除了对标度的细节略做调整,我们还可以替换整体标度。最经常进行替换的两种标度是连续型位置标度和颜色标度。
    • 经常需要修改定制的另一种标度是颜色。默认分类标度以一种非常均匀的方式在色环上选择颜色。常用的另一种配色方式是使用 ColorBrewer 标度,经过手工调整后,这种方式更适合那些有色盲症的人。
    • 如果预先确定了数据值和颜色间的映射,那么可以使用 scale_color_manual() 函数。


21.5 缩放
  • 控制图形范围的方法有 3 种
    • 调整绘图所用数据
    • 设置标度范围
    • 在 coord_cartesian() 函数中设置 xlim 和 ylim 参数值


21.6 主题
  • 可以使用主题来定制图形中的非数据元素
    file:///Users/huimei/Library/Application%20Support/typora-user-images/image-20181128225549907.png?lastModify=1543417748

file:///Users/huimei/Library/Application%20Support/typora-user-images/image-20181128225743272.png?lastModify=1543417748
file:///Users/huimei/Library/Application%20Support/typora-user-images/image-20181128225838830.png?lastModify=1543417748
21.7 保存图形
  • 要想将图形从 R 导入你的最终报告,主要有两种方法:ggsave() 和 knitr。ggsave() 可以将最近生成的图形保存到磁盘

file:///Users/huimei/Library/Application%20Support/typora-user-images/image-20181128230216736.png?lastModify=1543417748
  • 如果没有指定 width 和 height,那么 ggsave() 就会使用当前绘图设备的尺寸。出于代码重用性的考虑,最好还是指定图形的这些参数。

  • 控制图形大小的选项主要有 5 个:fig.width、fig.height、fig.asp、out.width 和 out.height。

  • 图形大小有两种(R 生成的图形的大小,以及插入到输出文档中的图形的大小),而且指定图形大小的方法也有多种(即高度、宽度和高宽比:三者任选其二)。

  • out.width 控制输出图形的大小,并将其设置为行宽的百分比。

  • 如果想在一行中放置多个图形,可以将 out.width 设置为 50% 以放置 2 个图形、设置 为33%以放置3个图形,或者设置为25%以放置4个图形,同时还要设置fig.align = "default"。

  • 当代码和文本混合时,就像本书一样,我们建议你设置 fig.show = "hold",以使图形显示在代码后面。这样做的好处是,可以强制使用解释性图形将大块代码分解成更小的部分。如果想要为图形添加说明文字,可以使用 fig.cap。在 R Markdown 中,这样做会将图形 从“内联”模式修改为“浮动”模式。 如果想要生成 PDF 格式的输出文件,使用默认的图形格式即可,因为默认格式就是 PDF。 PDF 是一种良好的默认格式,因为它是一种高质量的向量化图形。





上一篇:bed文件转成BigWig的方法
下一篇:慧美——R for data science—第23章 R Markdown工作流
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-9-18 20:30 , Processed in 0.064128 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.