R语言也可以进行绘制多条曲线,将其绘制在一张图中说明问题。药物累计释放是我们常见的一种图,一般由两三条曲线构成,如下图所示
那么今天,我们来一起学习一下R语言如何进行药物曲线的绘制。
软件介绍
R
RStudio
教程介绍
1.首先我们准备好我们的数据,一般情况下,是通过HPLC检测完成后,计算出每个点对应的累计释放量,如下图所示:横坐标为时间,组别,以及每个组每个时间点平行的三个样品数据
2.首先我们加载需要的R包
library(tidyverse)
library(openxlsx)
3.读取数据(我这里是将数据放在了R指定的路径下)
release_data <- read.xlsx("药物释放.xlsx",sheet = 1,sep=" ")
release_data
4.一般作图都是均值±标准差/标准误,因此,我们需要计算均值和标准差或标准误,这里我们使用标准误
release_data <- release_data%>%
mutate(mean=(Sample1+Sample2+Sample3)/3,
se=sqrt(((Sample1-mean)^2+(Sample2-mean)^2+(Sample3-mean)^2)/(3-1))/sqrt(3))
5.开始使用ggplot2
绘图
一般纵坐标都是百分制,因此将纵坐标mean乘以100,误差线ymin和ymax都乘以100
ggplot(release_data,aes(`Time (h)`,mean*100,colour=Group))+
geom_line()+
geom_point()+
geom_errorbar(aes(ymin=(mean-se)*100,ymax=(mean+se)*100))
6.最后,我们将样式调一下就可以了
scale_x_continuous()可以调节x轴间距,scale_y_continuous()可以调节y轴间距
legend.position = c()可以调节legend的位置
ylab()可以命名y轴的名称
ggplot(release_data,aes(`Time (h)`,mean*100,colour=Group))+
geom_line()+
geom_point()+
geom_errorbar(aes(ymin=(mean-se)*100,ymax=(mean+se)*100))+
scale_x_continuous(breaks = seq(0,50,by=5))+
scale_y_continuous(limits=c(0,110),breaks = seq(0,100,by=20),expand = c(0,0))+
theme(text=element_text(size=15),
panel.background = element_rect(fill=NA),
panel.border = element_rect(fill=NA,colour = "black",size = 1.5),
legend.position = c(0.8,0.2))+
ylab("Cumulative release of compound (%)")
7.最后我们再细微调整一下
legend.title = element_blank()用来将原来的legend的标题移除
legend.key = element_blank()用于将legend的标签的背景移除
scale_color_discrete(limits=c("High concentration", "Middle concentration", "Low concentration")用于将三个标签进行排序
ggplot(release_data,aes(`Time (h)`,mean*100,colour=Group))+
geom_line(size=1)+
geom_point(size=2)+
geom_errorbar(aes(ymin=(mean-se)*100,ymax=(mean+se)*100),size=1)+
scale_x_continuous(breaks = seq(0,50,by=5))+
scale_y_continuous(limits=c(0,110),breaks = seq(0,100,by=20),expand = c(0,0))+
theme(text=element_text(size=15),
panel.background = element_rect(fill=NA),
panel.border = element_rect(fill=NA,colour = "black",size = 1.5),
legend.position = c(0.8,0.2))+
ylab("Cumulative release of compound (%)")+
theme(legend.title = element_blank(),
legend.key = element_blank())+
scale_color_discrete(limits=c("High concentration",
"Middle concentration",
"Low concentration"))
8.一幅图就做好了,赶紧来学习吧