【问题标题】:Defining absolute text size using lattice使用 lattice 定义绝对文本大小
【发布时间】:2014-10-24 05:17:14
【问题描述】:

我正在尝试准备出版的图表,期刊要求图表具有一定的宽度和高度,字体大小为 10。

这是我的基本结构:

cairo_ps(file = "plot.eps", width = 6.85, height = 9.213)
dotplot(...)
dev.off()

我尝试使用trellis.par.set、trellis.device 强制字体大小并在设备本身中使用pointsize 设置它,但没有运气。我无法将字体大小更改为默认值。有什么想法吗?

【问题讨论】:

  • 为什么不使用 Cairo 设置字体大小?它还有一个 pointsize 参数。
  • 我做到了。仔细阅读我的问题。
  • 您能否提供一个可重现的数据示例,以便检查您已经做了什么?通过一个最小的示例,我可以重现此行为,这意味着如果在图形设备中进行pointsize,则晶格图形不会受到更改的影响。

标签: r lattice trellis


【解决方案1】:

您可以改用Cairo。但是,此解决方案可能会产生一些看似意外的结果,例如在调用 Cairo 时更改 dpi 参数时。

似乎涉及一些编码问题。例如,我必须在更改字体大小后重新运行代码才能使更改生效。被警告!您可能需要稍微调整一下才能获得所需的字体大小。

然而,与内置图形设备相反,这似乎对trellis.par.set 所做的更改作出反应。这是一个使用 PNG 的示例,对我来说同样适用于 PDF:

dat <- data.frame(a=1:3, b=1:3)

Cairo(file = "plot.png", type="png", units="in", width = 6, height = 3, dpi=100)
xyplot(b~a, dat) 
trellis.par.set("fontsize", list(text=12, points=8)) 
dev.off()

比较:

Cairo(file = "plot.png", type="png", units="in", width = 6, height = 3, dpi=100)
xyplot(b~a, dat) 
trellis.par.set("fontsize", list(text=18, points=8)) 
dev.off()

【讨论】:

  • Cairo() 是否来自同名包?
  • 是的,包和“通用”函数都命名为Cairo。还有输出专用设备CairoPDF()等,但Cairo()是通用接口。
  • 有效!似乎我的问题出在trellis.par.set 上。如果将它放在绘图命令之前,则不必重新运行它两次。一旦我做对了,cairo_ps() 就完成了这项工作。不过,Cairo() 似乎确实比 cairo_ps() 方便一点。
  • 哈,没想到。很高兴它仍然可以提供一点帮助!
  • 最后一件事,由于某种原因,Cairo() 不能很好地工作,并且偶尔会吐出错误。另一方面,CairoPS() 工作得很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多