侧边栏壁纸
  • 累计撰写 51 篇文章
  • 累计创建 1 个标签
  • 累计收到 3 条评论
标签搜索

目 录CONTENT

文章目录

R语言绘图 -单坐标轴折线图01

食用菌精准育种实验室-实验宝典
2024-02-17 / 0 评论 / 0 点赞 / 117 阅读 / 1,854 字

原创内容,欢迎转载,转载请注明出处


主笔:于浩


一、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这列来表示,每条折现一个名字。

QQ截图20240214174711.png

2、双击R脚本“GeomLinePlot01.R”,用RStudio打开脚本。

3、根据原始数据修改脚本,下图告诉了我们一些一定要修改的值,其他的值为了画出来美观也最好根据自己数据的实际情况进行修改。

QQ截图20240214173546.png

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来进行修改。

geomline01_result.png



绘制没有点的折线图

1、数据整理

从下图可以看出来,R语言的输入格式还是“长格式”。因为没有点,所以肯定没有error bar。

因此只有3列,time就是x轴的数值,第2列m就是y轴的数值也就是平均值,最后一列type是组名,由于是长格式,因此区分不同曲线就要用type这列来表示,每条折现一个名字。

geomline02-2.png

2、双击R脚本“GeomLinePlot02.R”,用RStudio打开脚本。

3、根据原始数据修改脚本,下图告诉了我们一些一定要修改的值,其他的值为了画出来美观也最好根据自己数据的实际情况进行修改。

geomline02-1.png

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来进行修改。

geomline02_result.png

0

评论区