r语言 - 如何在每页有多个绘图的绘图中指定字体大小

  • 本文关键字:绘图 字体 r语言 r knitr
  • 更新时间 :
  • 英文 :


当我使用 knitr 从 RStudio 中生成.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() 似乎在内部调用 par() 以设置新的(较小的)字符扩展值。因此,在布局之前设置 par(cex=1) 不起作用。我不知道这一点,但这是有道理的。很抱歉不必要的干扰。

最新更新