科研技巧 | 使用ggplot2进行图形绘制

显示内容

科研技巧 | 使用ggplot2进行图形绘制

前言

ggplot2是由Hadley Wickham创建的一个十分强大的可视化R包。按照ggplot2的绘图理念,Plot(图)= data(数据集)+ Aesthetics(映射)+ Geometry(几何对象)。

安装方法

# The easiest way to get ggplot2 is to install the whole tidyverse:install.packages("tidyverse")# Alternatively, install just ggplot2:install.packages("ggplot2")# Or the development version from GitHub:# install.packages("devtools")devtools::install_github("tidyverse/ggplot2")

ggplot2绘图八个要素:

  • 数据(Data)和映射(Mapping)

  • 几何对象(Geometric)

  • 标尺(Scale)

  • 统计变换(Statistics)

  • 坐标系统(Coordinante)

  • 图层(Layer)

  • 分面(Facet)

  • 主题(Theme)
1. 数据:用于绘制图形的数据;2. 映射:aes()函数是ggplot2中的映射函数, 所谓的映射即为数据集中的数据关联到相应的图形属性过程中一种对应关系, 图形的颜色,形状,分组等都可以通过通过数据集中的变量映射。
  • 以内置diamond数据为例:
library(ggplot2)data(diamond) #调用diamonds数据head(diamond) #查看数据框前几行ggplot(diamond, aes(x=carat, y=price)) #使用diamond数据绘图,克拉为x变量,价格为y变量。ggplot(diamond, aes(x=carat, y=price, shape=cut, colour=color))+geom_point()  #映射形状shape与颜色colour
3. 几何对象代表我们在图中实际看到的图形元素,如点、线、多边形等。数据与映射部分介绍了ggplot函数执行各种属性映射,只需要添加不同的几何对象图层,即可绘制出相应的图形。例如,geom_histogram用于直方图,geom_bar用于画柱状图,geom_boxplot用于画箱形图等。
  • geom_abline
  • geom_blank
  • geom_errorbar
  • geom_errorbarh
  • geom_hline
  • geom_jitter
  • geom_linerange
  • geom_point
  • geom_pointrange
  • geom_polygon
  • geom_rect
  • geom_rug
  • geom_segment
  • geom_step
  • geom_text
  • geom_vline
  • 以mpg数据绘制散点图为例:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))

4. 标尺(Scale)

在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,颜色属性等。ggplot2的scale系列函数有很多,命名和用法是有一定规律的。一般使用三个单词用_连接,如scale_fill_gradient和 scale_x_continuous,

  • 第一个都是scale

  • 第二个是color fill x y linetype shape size等可更改的参数

  • 第三个是具体的类型

5统计变换(Statistics)

ggplot2提供了多种统计变换方式,最常见的为stat_smooth对原始数据进行某种统计变换计算,然后在图上表示出来,例如对散点图上加一条回归线。

#method 表示指定平滑曲线的统计函数,如lm线性回归, glm广义线性回归, loess多项式回归, gam广义相加模型(mgcv包), rlm稳健回归(MASS包)。

ggplot(mpg, aes(displ, hwy)) +geom_point() +stat_smooth()ggplot(mpg, aes(displ, hwy)) +geom_point() +geom_smooth() +stat_smooth(method = lm, se = TRUE)

6. 主题(Theme)ggplot2提供一些已经写好的主题,比如theme_grey()为默认主题,theme_bw()为白色背景主题,theme_classic()为经典主题。除此之外,还可以自定义主题。7. 分面(facet)

分面设置在ggplot2应该也是要经常用到的一项画图内容,在数据对比以及分类显示上有着极为重要的作用,facet_wrap 和 facet_grid是两个经常要用到的分面函数。

facet_wrap:基于一个因子进行设置,形式为:~变量(~单元格)。facet_grid:基于两个因子进行设置,形式为:变量~变量(行~列),如果把一个因子用点表示,也可以达到facet_wrap的效果,也可以用加号设置成两个以上变量。
ggplot(data = mpg) + geom_point(aes(x = displ, y = hwy)) + facet_wrap(~ class, nrow = 2)
掌握ggplot最好的方法是练习,实践。最后推荐几个website:3 Data visualisation | R for Data Science (had.co.nz)ggplot2 Quick Reference | Software and Programmer Efficiency Research Group (usi.ch)

分享到:

最新文章

活太累,就是因为不懂暴力沟通(好心情秘方)

2023-03-19

(我要找到1001种“让自己变好”的行动指南。 )“让自己变好” | 第36篇指南当我们责怪别人时,是什么蒙蔽了爱?“某些语言和表达方式虽致力于满足某种愿望,却忽视人的感受和需要,最终导致彼..

平安走过每一天

2023-03-19

人这一辈子,最珍贵的是什么?不是财富,不是地位,而是平安。生活平安,事业平安,身体平安,一切平安健康是福。走过的路成为背后的风景,不能回头不能停留,若此刻停留,将会错过更好的风景,保持一份平和,保持一..

绿色搭配这5种颜色,好看又气质!

2023-03-19

嗨,各位小仙女们,大家好呀!不知道你们有没有发现,每进入春季,绿色相关的单品都会很流行,不过,有人觉得像绿色系的衣服,都是比较难驾驭的,因为过高的色彩饱和度,穿起来会把肤色衬托得很黑,不懂搭配的话,还..

人手一件的小香风外套,这样穿,优雅又气质!

2023-03-19

嗨,各位小仙女们,大家好呀!到了春天,又该买买买了~说到今年春天流行的外套,Lily觉得小香风外套就非常不错的,这种自带优雅知性感的款式,相信不少姐妹们会喜欢。而且,小香风外套很适合个矮的姐妹们,穿起..

牛仔裤搭配这3双鞋子,时髦又耐看

2023-03-19

嗨,各位小仙女们,大家好呀!喜欢穿牛仔裤的姐妹们,相信衣橱里或多或少都有几款牛仔裤吧?那么在选择牛仔裤来穿的时候,一般你都会配什么鞋子呢?其实吧,像牛仔裤这么百搭耐看的裤装,无论与什么裤子相配都是很o..