今天看到有个帖子,想把两组数据的散点图画在同一个坐标系中,顿时想到双坐标轴的问题,百度之,确实有,摘录之。
一、数据准备
我们希望将正弦曲线和余弦曲线画在同一坐标系中,并使用不同的坐标轴,这里的数据就是来源刚才说的这个帖子。
https://bbs.pinggu.org/thread-3522151-1-1.html
- set.seed(2015)
- n<-100
- x1<-runif(n,1.4,5.7)
- y1<-sin(x1)
- #x2<-runif(n,1.2,6)
- y2<-cos(x1)
二、画图方法
(一)最原始的方法
- plot(y1~x1,xlab="x",ylab="y",type="p",axes=F,pch=1)
- axis(1)
- axis(2)
- par(new=T)
- plot(y2~x1,xlim=c(1.2,6),axes=F,type="p",pch=2,xlab="",ylab="",main="Scatter Plot of Sin and Cos")
- axis(4,col="red",col.axis="red")
- legend("topright",legend=c("y1","y2"),pch=c(1,2))
(二)用plotrix包
plotrix包中的twoord.plot是专门用来画双坐标轴图的
- library(plotrix)
- twoord.plot(x1,y1,x1,y2,type="p",lcol="black",rcol="red",
- xlab="x",ylab="y1",rylab="y2",
- main="Scatter Plot of Sin and Cos")
- legend("topright",legend=c("y1","y2"),pch=c(1,2),col=c(1,2))
上面两种方法甚至可以共用一个横轴,也就是说,(x1,y1)和(x2,y2)可以画在同一个图中的,只需要把第二个图的x1改为x2就可以了。
画两个纵坐标轴图,用ggplot2应该也可以画,最近刚开始学,论坛上已经有人实现了,但还没看懂,所以只放个链接。https://bbs.pinggu.org/thread-2370719-1-1.html


雷达卡



京公网安备 11010802022788号







