【问题标题】:Exporting images in R: Cairo and ggsave increasing specified dimensions在 R 中导出图像:Cairo 和 ggsave 增加指定尺寸
【发布时间】: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 是默认值。

标签: r ggplot2 cairo ggsave


【解决方案1】:

刚刚发现 Cairo() 和 ggsave() 大小输出会受到图像分辨率的影响,即使您选择“公制”维度作为输出。

所以基本上,如果你想要一个 300 dpi 的 90x150 图形,你必须除以 3 这个尺寸(因为 300 dpi 是默认分辨率的 3 倍,100dpi)。您的设置将是 30x50。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 2015-01-27
    • 2011-12-23
    • 1970-01-01
    • 2021-02-07
    • 2016-03-17
    • 2015-08-08
    相关资源
    最近更新 更多