R情节,为什么引入轴限制造成破坏?

时间:2016-10-31 17:28:27

标签: r plot

我的代码

library(Hmisc)

r1 <- read.table("mt7.1r1.rp", header = FALSE) 
r2 <- read.table("mt7.1r2.rp", header = FALSE) 
r3 <- read.table("mt7.2r1.rp", header = FALSE) 
r4 <- read.table("mt7.2r2.rp", header = FALSE)

p1=r1[1]
per1=log10(p1)
p2=r2[1]
per2=log10(p2)
p3=r3[1]
per3=log10(p3)
p4=r4[1]
per4=log10(p4)

m1=nrow(per1)
m2=nrow(per2)
m3=nrow(per3)
m4=nrow(per4)

xmin <- floor( min(per1,per2,per3,per4))
xmax <- ceiling( max(per1,per2,per3,per4))

lxmax=10^(xmax)
lxmin=10^(xmin)

rhoaxy = r2[3]
phaxy = r2[5]

rhoayx = r3[3]
phayx = r3[5]

rhoaxx = r1[3]
phaxx = r1[5]

rhoayy = r4[3]
phayy = r4[5]


per2=unname(per2)
per2=unlist(per2)
per3=unname(per3)
per3=unlist(per3)

rhoaxy=unname(rhoaxy)
rhoaxy=unlist(rhoaxy)
rhoaxy=log10(rhoaxy)
rhoayx=unname(rhoayx)
rhoayx=unlist(rhoayx)
rhoayx=log10(rhoayx)

ymin1=floor(min(rhoaxy)-1)
ymax1=ceiling(max(rhoaxy)+1)
ymin2=floor(min(rhoayx)-1)
ymax2=ceiling(max(rhoayx)+1)
ymin=min(ymin1,ymin2)
ymax=max(ymax1,ymax2)

png("withlim.png")

plot(per2,rhoaxy, col='red', xlab='Per (s)', ylab = 'Rho-xy/yx',ylim=c(ymin, ymax))
par(new=TRUE)
plot(per3,rhoayx, col='green', xaxt='n', xlab= NA, yaxt = 'n', ylab = NA)

dev.off()

我得到的图像 enter image description here

如果我删除ylim enter image description here

我的问题是,为什么轴限制会改变图像内容?第二张图像的值对应于正确的数据值。第一张图像的值不代表rhoaxy和rhoayx。

1 个答案:

答案 0 :(得分:3)

没有数据很难测试,但我的猜测是,在第二个图上,Y轴不相同,尽管Y轴不是图。

所以你已经得到了2个图的叠加,具有不同的Y轴。 如果你想在两个图上都使用相同的ylim,也可以在第二个图上添加ylim=c(ymin, ymax)

如果不起作用,请提供数据示例,以便我们进行测试。