【发布时间】: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 个。我想我可以将其扩大更大的数字作为临时解决方案。