【发布时间】:2021-01-19 23:59:58
【问题描述】:
我正在尝试使用 ggsave() 和 Cairo() 导出尺寸为 90x150 毫米、300 dpi 的图形。问题是,即使我在代码上正确指定了图形尺寸,它们最终还是比预期的大得多(281x468 毫米)。这是我一直在使用的代码:
x <- 1:10; y = x*x
plot = qplot(x, y, geom=c("point", "line"))
#ggsave
ggsave(plot, filename = "test.png",
width = 90, height = 150, dpi = 300, units = "mm", type = "cairo")
#Cairo
Cairo(90, 150, file="test2.png", type="png", bg="white", res = 300, units = "mm")
plot
dev.off()
【问题讨论】:
-
如果您从 Cairo 删除
units = "mm",它会绘制正确的尺寸 (90 X 150) -
它实际上以像素为单位绘制 90x150 大小,因为它是 Cairo 的默认输出。但是谢谢你,你的评论让我意识到为什么它不起作用。基本上图形大小也受分辨率的影响,即使我选择“公制”系统作为输出。这就是为什么在 300 dpi 时 90 毫米变成 280 毫米的原因,因为 100 dpi 是默认值。