在par(图)之后,mtext略微偏离

时间:2017-02-22 13:21:45

标签: r

我正在使用一个名为smallPlot的函数创建一个子图。它将par(fig)设置为图的子区域(或图,对于多面图)。但是,重置参数后,mtext稍微关闭。任何想法,为什么会这样?

dev.off()
plot(1:10)
mtext("hello", adj=1, col=2)            # written as expected
op4 <- par(fig=c(0.1,0.8,0.3,0.8), new=TRUE)   
par(op4)
mtext("hello ", adj=1, col=3)           # right spot
par(fig=c(0.1,0.8,0.3,0.8), new=TRUE)
plot(rnorm(400), type="l")
par(op4)
mtext("hello ", adj=1, col=4)           # too far left

编辑:原始问题不同,但很容易解决。这里仅供参考:

dev.off()
op1 <- par(no.readonly = TRUE)
plot(1:10)
abline(h=2, col=2)                      # drawn

par(fig=c(0.1,0.8,0.3,0.8), new=TRUE)
plot(rnorm(400), type="l")
par(op1)
abline(h=4, col=4)                      # not drawn!
axis(4)

答案:op1$usr默认为0,1,0,1。

1 个答案:

答案 0 :(得分:0)

op4没有usr元素。在小插图后,usr被改变了。要重置,可以使用以下内容:

dev.off()
plot(1:10)
usr <- par("usr")
op4 <- par(fig=c(0.1,0.8,0.3,0.8), new=TRUE)
plot(rnorm(400), type="l")
par(op4)
par(usr=usr)
mtext("hello", adj=1, col=4); mtext("hello", adj=0, col=4)