在par(图)之后,边距中的文字不会被写入

Ber*_*ool 5 plot r

par(fig)使用原始参数设置图形参数并重置它们后,不会写入图表边距中的文本.只有在另一个低水平命令进行绘图区域将再次工作.这是一个例子:

dev.off()
plot(1:10)
op <- par(no.readonly = TRUE)  
mtext("hello", adj=1, col=2)           # written as expected
par(fig=c(0.1,0.6,0.5,0.8), new=TRUE)  
par(op)
mtext("hello ", adj=1, col=3)          # not written
mtext("hello ", adj=1, col=3, line=-1) # works inside plot region
mtext("hello ", adj=1, col=3)          # still not written
text(50,20,"") # or abline             # do something inside plot region
mtext("hello         ", adj=1, col=3)  # now it works!
Run Code Online (Sandbox Code Playgroud)

这可能与我在par(图)之后发布的另一个问题有关,mtext略有偏离.

此外mtext,axis也行不通.此外text/abline/points,title(main="dummy")还解决了这个问题.

这可能是一个R bug吗?或者我错过了什么?

Nic*_*edy 5

经过反复试验,归结为par(mfg=c(1, 1, 1, 1)).

plot(1:10)
op <- par(no.readonly = TRUE)  
mtext("hello", adj=1, col=2)           # written as expected
par(op[names(op) == "mfg"])
mtext("bye ", adj=1, col=3)            # not written
mtext("hello ", adj=1, col=3, line=-1) # works inside plot region

plot(1:10)
op <- par(no.readonly = TRUE)  
mtext("hello", adj=1, col=2)           # written as expected
par(op[names(op) != "mfg"])
mtext("bye ", adj=1, col=3)            # written as expected
mtext("hello ", adj=1, col=3, line=-1) # works inside plot region
Run Code Online (Sandbox Code Playgroud)

我不清楚为什么设置下一个要绘制的数字应禁用边距中的打印文本(但不在图中),并且由于mtext在C中实现,因此需要花费一些精力来完成它.