R语言绘图技巧:在同一张中使用两种不同尺度

时间:2024-02-18 12:41:00

     写文章过程中遇到了这个绘图问题,需要在曼哈顿图上添加多样性曲线,两者的尺度差别比较大,直接用lines函数进行添加,效果悲剧。强行将尺度差距大的两者画在同一图中,效果大概就是下面这个样子。

      这个图不容易看出数据的比较差异来。为解决这个问题,可使用R plotrix包里的twood.plot函数,在同一张图中使用两种不同的尺度,函数描述如下:

使用这个函数之后,再来画图:

  无视色彩搭配和审美问题,至少比前面的图要直观一些了,两种信息的联系也能看的比较清晰。 最后放上代码~~~

 

#########################################

##                      Plot with two ordinates                          ##

#########################################

library(plotrix)
set.seed(1234)
pvalue <- runif(100,0,0.005)
Diversity <- runif(100,0,5)

# Fig 1
x <- seq(1,100)
pvalue <- -log(pvalue)
plot(c(0,100),c(0,12),type=\'n\',xlab=\'Position\',ylab=\'value\')
points(pvalue,pch = 20, col=\'gray50\')
lines(x,Diversity,col=\'blue\')

# Fig 2
twoord.plot(x,pvalue,x,Diversity,xlab=\'Position\',ylab=\'-log pvalue\',
rylab=\'Diversity\',lcol=\'gray50\',rcol=\'blue\',type=c(\'p\',\'l\'),lpch=20)