原创内容,欢迎转载,转载请注明出处
主笔:于浩
一、R语言软件安装
1、系统和软件参考:R语言绘图基础
2、下载Demo数据,点击文章底部的“下载demo数据”下载demo数据和R脚本。
二、数据和脚本准备
R语言绘图就跟生物信息学的常规分析一样,主要就是数据格式的整理,脚本中参数的修改。数据整理好了,参数修改对了,直接运行就可以得到自己想要的结果。
1、将demo数据解压缩到D盘根目录的“R-Plot”文件夹下。
2、将绘图数据按照demo数据的格式填写到“input_table01.csv、input_table02.csv”等文件中。
三、运行R脚本进行绘图
绘制单纵坐标的带有error bar的折线图
1、数据整理
从下图可以看出来,R语言的输入格式都是“长格式”,这个是跟用其他软件或者excel绘图的数据准备不同的地方。常规的折线图的数据包含4列,第一列time就是x轴的数值,第2列m就是y轴的数值也就是平均值,第3列sd就是标准差,也就是error bar的值(在excel中可以通过STDEV公式计算得到),最后一列type是组名,由于是长格式,因此区分不同曲线就要用type这列来表示,每条折现一个名字。
2、双击R脚本“GeomLinePlot01.R”,用RStudio打开脚本。
3、根据原始数据修改脚本,下图告诉了我们一些一定要修改的值,其他的值为了画出来美观也最好根据自己数据的实际情况进行修改。
library(ggplot2)
df <- read.table("D:\\R-Plot\\input_table01.csv", header=T, sep=',')
p <- ggplot(df, aes(time, m, color=type, shape=type, fill=type))+
# 下面代码是进行线形图绘制的主代码
# 需要注意的是蓝色部分的数目应该跟所绘制的线条的数目一样,比如说如果绘制3条线,就改成 c(1,1,1) c('black','black','black')
geom_line(size=1.5)+
scale_linetype_manual(values = c(1,1,1))+
scale_color_manual(values = c('#1F77B4','#FF7F0E','#2CA02C', '#FFBC78', '#9467BD', '#8C564B', '#17BECF'))+
# 下面代码是进行点图绘制的主代码
geom_point(size=8)+
scale_shape_manual(values=c(21, 22, 24, 23, 25, 2, 5))+
scale_fill_manual(values = c('#1F77B4','#FF7F0E','#2CA02C', '#FFBC78', '#9467BD', '#8C564B', '#17BECF'))+
# 下面代码是为了添加error bar,width决定了error bar的上下横线的宽度
geom_errorbar(aes(ymin=m-sd, ymax=m+sd), width=0.4, linetype=1, size=1.0)+
# 下面是x轴的参数修改
xlim(0, 70)+
# 最后面括号里面是x轴的刻度,必须要根据自己的实际情况修改
scale_x_continuous("Time (h)", breaks = c(0, 6, 12, 18, 24))+
theme(axis.text.x = element_text(size = 20, face = "bold",family = "Cambria", vjust = 0.5, hjust = 0.5))+
theme(axis.title.x= element_text(size=25, family="Cambria", color="black", face= "bold", vjust=0.5, hjust=0.5) )+
# 下面是y轴的参数修改,y轴的范围和刻度线必须要根据实际情况修改
ylim(0, 8)+
scale_y_continuous("Decolorization rate (%)", breaks = c(0, 0.5, 1.0, 1.5, 2.0))+
theme(axis.text.y = element_text(size = 20, family = "Cambria", face = "bold",vjust = 0.5, hjust = 0.50))+
theme(axis.title.y= element_text(size=25, family="Cambria", color="black", face= "bold", vjust=2.0, hjust=0.5))+
# x轴和y轴的刻度线的长度和宽度,如果是负值则刻度线向内
theme(axis.ticks = element_line(size = 2), axis.ticks.length = unit(5, "pt"))+
# 下面这行代码就是去掉背景的颜色,并添加上外框
theme(panel.grid =element_blank(), panel.background = element_blank())+
theme(axis.line = element_line(size=1, colour = "black"))
# 保存数据,两种格式
ggsave(p, file = "D:\\R-Plot\\geomline01_result.emf", width=12, height=8)
ggsave(p, file = "D:\\R-Plot\\geomline01_result.png", width=12, height=8)
demo数据结果如下:其中emf格式的数据可以用AI或者CDR来进行修改。
绘制没有点的折线图
1、数据整理
从下图可以看出来,R语言的输入格式还是“长格式”。因为没有点,所以肯定没有error bar。
因此只有3列,time就是x轴的数值,第2列m就是y轴的数值也就是平均值,最后一列type是组名,由于是长格式,因此区分不同曲线就要用type这列来表示,每条折现一个名字。
2、双击R脚本“GeomLinePlot02.R”,用RStudio打开脚本。
3、根据原始数据修改脚本,下图告诉了我们一些一定要修改的值,其他的值为了画出来美观也最好根据自己数据的实际情况进行修改。
library(ggplot2)
df <- read.table("D:\\R-Plot\\input_table02.csv", header=T, sep=',')
p <- ggplot(df, aes(time, m, color=type, shape=type, linetype=type, fill=type))+
# 线图的基本属性,包括线的宽度和线上面节点的大小
geom_line(size=1.5)+
# 主题内容,第一个size是x轴刻度值的字体大小,后面两个size是x轴和y轴的标题的字体大小。
theme(axis.text.x = element_text(size = 20, face = "bold",family = "Cambria", vjust = 0.5, hjust = 0.5))+
theme(axis.text.y = element_text(size = 20, family = "Cambria", face = "bold",vjust = 0.5, hjust = 0.50))+
theme(axis.title.y= element_text(size=25, family="Cambria", color="black", face= "bold", vjust=2.0, hjust=0.5))+
theme(axis.title.x= element_text(size=25, family="Cambria", color="black", face= "bold", vjust=0.5, hjust=0.5) )+
# y轴的标题的内容和x轴的范围,这个需要修改
scale_y_continuous("Absorbance", limits=c(0,2.5), breaks = c(0, 0.5, 1.0, 1.5, 2.0, 2.5))+
# x轴的标题的内容和x轴的范围,这个需要修改
scale_x_continuous("Wavelength (nm)", limits=c(200, 400), breaks = c(200, 250, 300, 350, 400))+
scale_color_manual(values = c('#FF7F0E','#1F77B4','#2CA02C', '#FFBC78', '#9467BD', '#8C564B', '#17BECF'))+
scale_linetype_manual(values = c(1, 1, 1))+ # 线条的的图形和颜色,1代表实线。
scale_fill_manual(values = c('#FF7F0E','#1F77B4','#2CA02C', '#FFBC78', '#9467BD', '#8C564B', '#17BECF'))+
# 网格线,此处采用的是空白,不需要添加网格线和背景
theme(panel.grid =element_blank(), panel.background = element_blank())+
# x轴和y轴的刻度线的长度和宽度,如果是负值则刻度线向内
theme(axis.ticks = element_line(size = 1.5), axis.ticks.length = unit(5, "pt"))+
# x轴和y轴的外框的颜色和宽度,这个是配合上面的一行代码共同起作用
theme(axis.line = element_line(size=1, colour = "black"))
# 保存数据,两种格式
ggsave(p, file = "D:\\R-Plot\\geomline02_result.emf", width=12, height=8)
ggsave(p, file = "D:\\R-Plot\\geomline02_result.png", width=12, height=8)
demo数据结果如下:其中emf格式的数据可以用AI或者CDR来进行修改。
评论区