写文章过程中遇到了这个绘图问题,需要在曼哈顿图上添加多样性曲线,两者的尺度差别比较大,直接用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)