我在 Windows 7 下使用 Cairo 库在 R 中创建一些相当复杂的图表,用于抗锯齿图形。我使用的是 R2.15.1 和 cairoDevice 版本 2.19。我有一个问题,即 Cairo_png() 中的字体大小比简单的基于屏幕的 Cairo() 中的字体大小大,并且 mtext 的位置不同。举一个简单的例子:
屏幕版本代码:
> Cairo(4, 4)
> par(bg = "blue")
> plot.new()
> for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")
结果:
png 版本的代码:
> Cairo_png("test.png", 4, 4)
> par(bg = "red")
> plot.new()
> for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")
> dev.off()
png 代码的结果:
如您所见,png 版本的字体更大,而多行文字的位置更宽。这是一个错误还是我做错了什么?
我应该补充一点,Cairo_svg() 和 Cairo_pdf() 的行为方式与 Cairo_png() 相同。它们都输出相同,但与基于屏幕的 Cairo() 不一致。