gpt4 book ai didi

r - 在 R 中使用库 cairoDevice 的 Cairo() 和 Cairo_png() 中的字体大小和多行文字位置不一致

转载 作者:行者123 更新时间:2023-12-01 04:03:26 24 4
gpt4 key购买 nike

我正在 R 中创建一些相当复杂的图表,使用 Cairo 库在 Windows 7 下进行抗锯齿图形。我使用的是 R2.15.1 和 cairoDevice 版本 2.19。我有一个问题,即 Cairo_png() 中的字体大小比简单的基于屏幕的 Cairo() 中的字体大小要大,并且多行文字的位置不同。举个简单的例子:

屏幕版本代码:

> Cairo(4, 4)
> par(bg = "blue")
> plot.new()
> for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")

结果:

enter image description here

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 代码的结果:

enter image description here

如您所见,png 版本中的字体更大,而多行文字的位置更宽。这是一个错误还是我做错了什么?

我应该补充一点,Cairo_svg() 和 Cairo_pdf() 的行为方式与 Cairo_png() 相同。它们都输出相同,但与基于屏幕的 Cairo() 不一致。

最佳答案

正如我们在 cairoDevice documentation 中看到的那样, 参数 pointsize 有不同的默认值在您提到的功能中:

Cairo(width = 7, height = 7, pointsize = 8, 
surface = c("screen", "png", "pdf", "ps", "svg"),
filename = Cairo_pdf(filename, width = 7, height = 7, pointsize = 10)
Cairo_ps(filename, width = 7, height = 7, pointsize = 10)
Cairo_svg(filename, width = 7, height = 7, pointsize = 10)
Cairo_png(filename, width = 7, height = 7, pointsize = 10)

取同 pointsize
Cairo_png("test.png", 4, 4, pointsize = 8)
par(bg = "red")
plot.new()
for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")
dev.off()

返回这个

enter image description here

关于r - 在 R 中使用库 cairoDevice 的 Cairo() 和 Cairo_png() 中的字体大小和多行文字位置不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com