【问题标题】:R Can't render small font in a PDF fileR无法在PDF文件中呈现小字体
【发布时间】:2015-07-27 21:53:40
【问题描述】:

我正在 R 中创建非常复杂的图,其中包含非常小的文本,例如 cex=0.04 或更小。但我发现小字体在一定字体大小后根本不会呈现。如何显示小字母?

pdf(file = paste("R_Plot_", format(Sys.time(), "%Y_%m%e_%H%M_%S"), ".pdf",sep=""),
    width = 11, height = 8)  
pMar = 0
par(mar = c(pMar,pMar,pMar,pMar)) 
lenM = 10
dimSq = lenM * lenM
layout(matrix(seq(1,dimSq), lenM,lenM))
for(i in 1:dimSq){
  plot(0,0, yaxt = 'n', xaxt='n', ann=FALSE, cex=0)
  tSize = i / dimSq
  text(0,0, labels=paste("cex=",tSize), cex=tSize )
}
dev.off()

上面的代码可以生成这样的 PDF 文件(我没有足够的声誉来发布图片),其中包含无意的空白单元格。

【问题讨论】:

  • 不知道是不是pdf查看器的问题;如果我将其写入 eps 文件并在文本编辑器中检查内容,文本就在那里,只是没有显示。
  • @baptiste 对于非常小的cex 使用pdf,我一无所获。无论我使用什么查看器/编辑器,文本都不存在。使用postscript() 写入文件,文本已写入,但最小的似乎没有正确的大小。
  • 对,似乎有一个阈值,低于该阈值 pdf 设备甚至不会在文件中写入文本命令。我试图在 grDevices 中找到它,但没有。作为一种解决方法,我猜你可以扩大其他所有东西
  • maybe this line is to blame,对于小于 0.5 的 cex*ps(不管是什么,72?),size 变为 0,produces no output.。可能是 R-devel 的问题。
  • 问题似乎比我能处理的要大。但是按照@baptiste 的建议将所有内容扩大 2,我能够将空白单元格的数量从 6 个减少到 3 个。我想我可以将其扩大更大的数字作为临时解决方案。

标签: r pdf


【解决方案1】:

另一种方法是尝试包装“开罗”

Cairo:R 图形设备使用 cairo 图形库创建高质量位图(PNG、JPEG、TIFF)、矢量(PDF、SVG、PostScript)和显示(X11 和 Win32)输出 >.

然后使用类似pdf()的函数

    CairoPDF()

【讨论】:

  • 开罗的这个解决方案非常适合我的情况。谢谢!
猜你喜欢
  • 2021-06-25
  • 2017-08-21
  • 2014-07-08
  • 2019-02-19
  • 1970-01-01
  • 2021-03-16
  • 2016-03-18
  • 2017-10-20
  • 2018-08-25
相关资源
最近更新 更多