当我们想同时展示两种数据,如销售量(千/月)和增长率(百分比)的变化情况,由于两组数据的数量级差别非常大,如果在一个y轴上展示则较小数量级的一组几乎无波动变化,此时可以绘制双坐标轴的图形,设置两个y轴,每个y轴都有自己的刻度范围,数据的波动就更加一目了然啦!
R语言plotrix包,可以帮助我们实现双坐标轴图形的绘制。
以7名患者的DNA测序的质控信息为例,绘制靶向捕获测序深度和重复率的关系:
#load plotrixlibrary(plotrix)#Data preparationID=1:7PID=paste("P",1:7,sep = "_")Depth=seq(from=2000,to=800,by=-200)DupRatio=c(0.31,0.45,0.37,0.64,0.35,0.56,0.42)Data=data.frame(ID=ID,PID=PID,Depth=Depth, DupRatio= DupRatio)#Plottwoord.plot(lx =Data$ID, ly = Data$Depth, rx = Data$ID, ry = Data$DupRatio, lcol = 'steelblue', main = '整数和小数的双轴图', xlab = '患者编号', ylab = '测序深度x(绝对数值)', rylab = '重复率(0-1之间的小数)', type = c('bar','l'), xtickpos=as.numeric(Data$ID), xticklab = as.character(Data$PID))
细说twoord.plot():
#函数用法: twoord.plot(lx,ly,rx,ry,data=NULL,main="",xlim=NULL,lylim=NULL,rylim=NULL, mar=c(5,4,4,4),lcol=1,rcol=2,xlab="",lytickpos=NA,ylab="",ylab.at=NA, rytickpos=NA,rylab="",rylab.at=NA,lpch=1,rpch=2, type="b",xtickpos=NULL,xticklab=NULL,halfwidth=0.4,axislab.cex=1, do.first=NULL,...)
#参数详情lx,ly,rx,ry:依次指第一组数据横坐标、该数据(左侧)纵坐标,第二组数据横坐标、该数据(右侧)纵坐标的值,注意必须是连续的值。data:待绘制双轴图形的数据框main:设置图形标题xlim:限制横坐标值的范围lylim,rylim:限制左、右纵坐标值的范围mar:设置图形边界距,默认值为(5,4,4,4)lcol,rcol:设置左右坐标轴的颜色,这样可以起到图例的作用xlab:设置横坐标轴标签lytickpos:设置左坐标轴刻度标签的位置ylab:设置左坐标轴标签ylab.at:设置左坐标轴标签位置rytickpos:设置右坐标轴刻度标签的位置rylab:设置右坐标轴标签rylab.at:设置右坐标轴标签位置lpch,rpch:设置左右坐标轴图形的外观type:指定图形类型xtickpos:设置横坐标轴刻度标签位置xticklab:设置横坐标轴刻度标签halfwidth:设置用户给定条形图宽度的一半axislab.cex:设置坐标轴标签和刻度标签的大小do.first:通过该参数可以往图形中添加背景色或网格
如有作图需求,可以后台私信小编;
欢迎加小编微信“guofengzhao527”,小编邀请你进作图丫分析作图群!
往期精彩链接:
一文掌握5.7分生信文章的分析代码
开学季免费送-肿瘤微环境视频课程