如何在每页有多个绘图的绘图中指定字体大小?

How to specify font sizes in plots with multiple plots per page?

当我在 RStudio 中使用 knitr 生成 .pdf 文件时,单个图显示轴标签、图例等所需的字体大小。但是,当我使用 layout() 函数生成多个子图时,这些字体大小减小了。请参阅下面的示例代码。

\documentclass[12pt,english,twocolumn]{article}
\begin{document}
<<settings, message=FALSE, echo=FALSE, cache=FALSE>>=
# set tikz default options
opts_chunk$set(
  out.width='15cm',
  fig.width=5.906, # inch
  fig.height=5.906, # inch
  dev='tikz',
  fig.align='center',
  fig.lp='fig:',
  fig.env='figure*',
  dev.args=list(pointsize=10),
  message=FALSE, 
  echo=FALSE
)
options(tikzDefaultEngine = "pdftex")
@
<<singlePlot, fig.cap="single plot with good font size">>=
par(cex=1)
plot(rnorm(100))
@
<<multiplePlots, fig.cap="multiple plots with fonts being too small">>=
par(cex=1)
layout(matrix(1:9, 3))
for(i in 1:9) plot(rnorm(100))
@
\end{document}

如何使第二个绘图中的字体与第一个绘图中的字体大小相同?谢谢!

哦,我的天啊,我在发布问题后仅 30 秒就自己解决了...

诀窍是在第二个图中颠倒 layout() 和 par() 的顺序,如下所示:

<<multiplePlots, fig.cap="multiple plots with fonts being just right">>=
layout(matrix(1:9, 3))
par(cex=1)
for(i in 1:9) plot(rnorm(100))
@

这按预期工作。

所以看起来layout()在设置多个plots时在内部调用par()来设置一个新的(更小的)字符扩展值。因此在布局之前设置 par(cex=1) 没有效果。我不知道这一点,但这是有道理的。抱歉打扰了。