我创建了一个带有两个y轴的图形,并使用mtext()标记右侧轴。
# generate some data to plot
x <- 1:5
y1 <- rnorm(5)
y2 <- rnorm(5,20)
# set margins
par(mar=c(5,4,4,5)+.1)
# plot first x/y line
plot(x,y1,type="l",col="red")
#plot second x/y line
par(new=TRUE)
plot(x, y2,,type="l",col="blue",xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("y2",side=4,line=3)
这本身很有效。但是,如果将其放入具有多个图的图中:
# create a 3x3 figure for multiple plots
par(mfrow = c(3, 3))
# generate some data to plot
x <- 1:5
y1 <- rnorm(5)
y2 <- rnorm(5,20)
# set margins
par(mar=c(5,4,4,5)+.1)
# plot first x/y line
plot(x,y1,type="l",col="red")
#plot second x/y line
par(new=TRUE)
plot(x, y2,,type="l",col="blue",xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("y2",side=4,line=3)
这里,左手y轴标签变小,而右手轴没有变小。
我知道此行为的来源是cex
中的mtext()
参数与par("cex")
无关;我想要的是解决这个问题。
答案 0 :(得分:2)
解决此问题的最佳方法是使用par()$cex
属性。所以你的代码是:
x <- 1:5
y1 <- rnorm(5)
y2 <- rnorm(5,20)
par(mfrow = c(3, 3), mar=c(5,4,4,5)+.1)
plot(x,y1,type="l",col="red")
par(new=TRUE)
plot(x, y2,,type="l",col="blue",xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("y2",side=4,line=3, cex=par()$cex)