在实验过程中一张好的结果数据图往往能更好的表达自己的观点,吸引读者的眼球,同时给与别人高端的感觉。本文将从计算生物模拟实验的结果出发做图,浅析R语言的ggplot2包如何制作一张美观的实验图片。

1 R语言与ggplot2包的安装

1.1 R语言环境搭建

作为做图用的R,需要时不时预览自己的图是否正确美观,所以这本文中我们需要先下载一些软件:

安装完两者之后就可以在图形化界面中使用R语言。平时只要点击Rstudio就可以使用,十分方便。

1.2 ggplot2包的下载与安装

输入如下命令在左下方的命令输入框中。此命令为下载安装ggplot2包,回车键输入后在弹窗中鼠标点击下载的镜像位置。

install.packages("ggplot2")

待安装好后,我们还需要加载ggplot2包才可以正常使用。且每次关闭Rstudio后重新开启都需要再一次加载,建议写在每一次的脚本文件中。

library("ggplot2")

2 数据预处理

当我们获得原始数据时,其组织结构往往是我们难以处理与接受的。所以作为第一步我们需要读取并重新安排组织我们的数据使之成为我们可以用ggplot2处理的样子,本章将从一些我们实验中获得的数据着手,了解R的文件读写与数据表结构安排重组

2.1 文件读入

当我们获得了实验数据之后,我们需要做的第一步就是把这些数据告诉我们的R,让它帮助我们处理。R提供许多的文件读取接口,以我们平时最常接触到的文件格式(.txt,.out,.dat,.csv)为例,我们一般只会用到read.table()read.csv(),其中后者只能特异性处理.csv格式的文件,其余的都用前者处理。

read.table("/path/filename", header = FALSE,...)
read.csv("/path/filename", header = TRUE,...)
#详细用法介绍与更多参数可用  ?read.table()  查看

需要注意的两点是:

  1. 引号内路径的斜杠(/)方向,直接复制的windows路径默认的是(\),需要手动修改。文件名需要带格式后缀。
  2. 两种文件接口默认的header设置不一样,而header表示是不是读取第一行作为数据表的列名,有时根据自己的需要时可以自己更改的。

2.2 数据表格重排

对于读入的数据表格一般情况下是不能满足我们对于做图要求的结构安排的,这时候就需要我们自己手动调整数据结构安排。这一步我们需要用到的函数有cbind()rbind()colnames()as.data.frame()

cbind(data.frame1,data.frame2,...)
rbind(data.frame1,data.frame2,...)
colnames(data.frame)=c("name1","name2",...)
as.data.frame(data)

2.3 文件保存

对于一些比较多的子文件通过手动调整集合成的数据表格,为了方便之后的读写,我们会选择将它保存为一个新的文件,这时候就要用到文件保存相关的函数write.table()write.csv()。与2.1文件读入相同,不同的函数对应处理不同文件后缀的文件保存。

write.table(data.frame1,"/path/filename",...)
write.csv(data.frame1,"/path/filename",...)
#详细用法介绍与更多参数可用  ?write.table()  查看

2.4 实例操作

数据文件1:rmsf_md1.out 数据文件2:rmsf_md2.out

下载数据文件(两个文件分别命名为rmsf_md1.out和rmsf_md2.out)后在文件所在同一文件夹下新建一个R Script文件(test1.R)按照如下步骤进行操作。下述代码可以按顺序都写在test1.R中,随代码之后的是每一行代码的拆解功能介绍。

2.4.1 读入文件

rmsf1 = write.table("rmsf_md1.out")
rmsf2 = write.table("rmsf_md2.out")

2.4.2 表格重排

rmsf = rbind(rmsf1,rmsf2)
rmsf = cbind(rmsf,rep(c("md1","md2"),each=283))
colnames(rmsf) = c("Res","Num","Group")

2.4.3 文件另存

write.table(rmsf,"rmsf_new.out")