【R语言】boxplot大样本分组绘图
像这种样本量很大的数据
就不能像以往一样挨个设置颜色
因为非常耗费时间
需要采取另一种方法
简述作图思路
√先用第一组数据画第一组箱线图(用boxplot函数),横坐标范围设置为两组样本合起来的范围(在本图中为1-199),统一设置颜色等参数;
√最后用第二组数据画第二组箱线图 (用boxplot函数),统一设置颜色等参数,用at设置第二组箱线图出现的位置,否则第二组图会和第一组图重叠;
详情请看代码~
代码
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"))
往期文章:
如果这篇文章对您有用~
求关注、在看、转发~