如何在每页有多个绘图的绘图中指定字体大小?
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) 没有效果。我不知道这一点,但这是有道理的。抱歉打扰了。
当我在 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) 没有效果。我不知道这一点,但这是有道理的。抱歉打扰了。