【发布时间】:2014-06-22 22:15:30
【问题描述】:
我需要使用 R 中的 Lattice 包生成一系列 PDF 图,其文本磅值由将在其中出版的期刊规定。
根据here, 的讨论,我可以逐个地更改点大小:
library(lattice)
trellis.device("pdf", pointsize=30)
trellis.par.set(fontsize = list(text = NULL))
xyplot(1:10 ~ 1:10)
dev.off()
这会产生以下情节:
然后我尝试设置一个全局选项:
library(lattice)
lattice.options(default.theme = list(fontsize = list(text = NULL)))
trellis.device("png", pointsize=30)
xyplot(1:10 ~ 1:10)
dev.off()
这不会产生相同的结果:
那么如何更改所有格子图的全局点大小?
【问题讨论】:
-
怎么样:
lattice.options(default.theme = list(fontsize = list(text = 30))); trellis.device("pdf"); xyplot(1:10 ~ 1:10); dev.off()? -
更新后能验证
lattice.getOption("default.theme")的值吗?您是否尝试在重新启动 R 后运行这些行?它似乎对我有用。 -
@jbaums 这可能有效,但我使用 knits 并且需要能够为不同块中的不同图指定不同的点大小。这个想法是设置
dev.args块选项具有正确的点大小,然后将其传递给pdf()。 -
@MrFlick 好点。重新检查我的环境,我发现我在调用
lattice.options(default.theme = canonical.theme("pdf", color = FALSE))后执行了上述行。然后当我调用lattice.options(default.theme = list(fontsize = list(text = NULL)))时,我看到lattice.getOption("default.theme")返回一个列表,其fontsize组件没有text元素,而不是text元素NULL。这是 lattice 包中的错误吗? -
对于我(Win 8.1;R 3.1.0;RStudio 0.98.501),如果我在新会话中运行
lattice.options(default.theme = list(fontsize = list(text = NULL))); trellis.device("png", pointsize=30); xyplot(1:10 ~ 1:10); dev.off(),情节类似于您的第一张图像,lattice.getOption("default.theme")返回一个列表将fontsize$text设置为NULL。如果我在同一个会话中第二次运行所有这些,则生成的绘图中的字体很小(根据您的第二张图像),并且lattice.getOption("default.theme")返回一个列表,其中fontsize设置为Named list(),如您所描述.