两个具有相同X和Y轴的图

cha*_*has 6 r set scatter-plot

显示的图表由以下R代码生成.

png("test.png")
plot(data[,4],data[,3],type='l',col="green")
par(new=TRUE)
plot(data[,4],data[,2],type='l',col="red")
dev.off()
Run Code Online (Sandbox Code Playgroud)

两个图的Y轴范围不同,如图所示,它被覆盖.有人可以帮助为这两个图设置相同的Y轴范围.

在此输入图像描述

Bri*_*ggs 6

如果y标度在很大程度上重叠,那么您可以创建包含整个范围的初始图(不绘制任何内容)来定义轴,然后绘制线.

set.seed(5)
data <- data.frame(1:60, rnorm(60, 0.6, 0.1), rnorm(60, 0.65, 0.15), 
                   seq(2,120,by=2))
Run Code Online (Sandbox Code Playgroud)

使用type='n'设置轴,但不绘制任何东西.使用所有数据的范围确保图包含所有数据.

plot(range(data[,4]), range(c(data[,3],data[,2])), type='n')
lines(data[,4], data[,3], type='l', col='green')
lines(data[,4], data[,2], type='l', col='red')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


ags*_*udy 5

您可以使用此方法:

  1. 绘制第一个图
  2. 称呼 par(new=TRUE)
  3. 在第一个图的顶部绘制第二个图。第二个图不绘制默认轴(axes=FALSE)

如果第二个图与第一个图的 y 不同,则可以使用该axis()函数在右侧绘制辅助 y 轴以表示比例。

例如,您可以执行以下操作:

 data <- matrix(rnorm(4*100),ncol=4)
 par(mar=c(5, 6, 2, 4))
 plot(1:100,data[,3], lwd=3, col="green", ann=FALSE, las=2,type='l')
 mtext("I am at left", side=2, line=3.5)
 par(new=TRUE)
 plot(1:100,data[,2], ann=FALSE, axes=FALSE,col='red',type='l')
 mtext("I am at right)", side=4, line=2)
 title("Using par(new=TRUE) \n same X and different or not Y axis ")
 axis(4)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明