科研星球

药物的累计释放曲线如何使用R语言作图

R语言也可以进行绘制多条曲线,将其绘制在一张图中说明问题。药物累计释放是我们常见的一种图,一般由两三条曲线构成,如下图所示

0 (5).png

那么今天,我们来一起学习一下R语言如何进行药物曲线的绘制。


软件介绍

R

RStudio


教程介绍

1.首先我们准备好我们的数据,一般情况下,是通过HPLC检测完成后,计算出每个点对应的累计释放量,如下图所示:横坐标为时间,组别,以及每个组每个时间点平行的三个样品数据

0.png


2.首先我们加载需要的R包

library(tidyverse)
library(openxlsx)

3.读取数据(我这里是将数据放在了R指定的路径下)

release_data <- read.xlsx("药物释放.xlsx",sheet = 1,sep=" ")
release_data

0 (2).png

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))

0 (1).png


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))

0 (3).png


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 (%)")

0 (4).png

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"))

0 (5).png

8.一幅图就做好了,赶紧来学习吧


没有账号?