vlambda博客
学习文章列表

【R语言】boxplot大样本分组绘图

【R语言】boxplot大样本分组绘图

像这种样本量很大的数据
就不能像以往一样挨个设置颜色
因为非常耗费时间
需要采取另一种方法


简述作图思路

    先用第一组数据画第一组箱线图(用boxplot函数),横坐标范围设置为两组样本合起来的范围(在本图中为1-199),统一设置颜色等参数;

    最后用第二组数据画第二组箱线图 (用boxplot函数),统一设置颜色等参数,用at设置第二组箱线图出现的位置,否则第二组图会和第一组图重叠;


详情请看代码~

【R语言】boxplot大样本分组绘图

代码

rm(list = ls()) #清除环境

data1<- read.csv("C:/Users/HuMeng/Desktop/data/EFig2a.csv"#导入数据,大家可以用自己的数据试一试,excel里的每一列就对应一个箱子

boxplot(data1[1:98],axes=F,col="white",#使用data1里前98列数据绘图
        border = "#30883e",lwd=1.5, cex=.3#lwd设置箱框粗细,cex设置孤点大小
        xlim=c(1,199),ylim=c(5,35),xlab = "Samples",ylab = "log2 (protein abundance)",
      cex.lab=1.4, font.lab=1) #y轴不从10开始,是因为方便设置legend,否则legend会和箱线图重叠在一起
boxplot(data1[99:199],add = T,axes=F,at=c(99:199),col="white",
        border="#a82c2e",lwd=1.5, cex=.3#at设置图出现位置
axis(2,at=c(10,15,20,25,30,35), #2表示设置左坐标轴(y轴)
     label=c("10","15","20","25","30","35"),lwd=2,
     lwd.ticks = 2,
     font.axis=1#坐标标签“1”为正常,“2”为加粗,“3”为斜体
     cex.axis=1.3#坐标标签大小,默认为1
legend(list(x=0,y=10),bty="n",title=NA,
       c("Non-tumour","Tumour"),
       pch=c(0,0),col=c("#30883e","#a82c2e"),horiz=T,pt.cex=3,
       cex=1.4,text.font = 1,text.width = strwidth("1000000000000"))

往期文章:







如果这篇文章对您有用~

求关注、在看、转发~