绘制边距文本可以缩放多个图?

时间:2011-12-17 01:24:59

标签: r plot

我创建了一个带有两个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")无关;我想要的是解决这个问题。

1 个答案:

答案 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)