【发布时间】:2020-06-21 21:44:57
【问题描述】:
R 问题。
我被width、height、dpi 和unit 弄糊涂了。
为什么以下两种尺寸不同?
ggsave(filename = "foo.png",ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(size=2, shape=23),width = 5, height = 4, dpi = 300, units = "in", device='png')
和
ggsave(filename = "foo.png",ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(size=2, shape=23),width = 5, height = 4, dpi = 72, units = "in", device='png')
我将图片的大小都设置为 5(英寸)* 4(英寸)。但是为什么当我更改dpi 时,大小会发生变化?
如何理解height、width、unit和dpi之间的关系?
或者如何将这四个参数转换成像素单位,我比较容易理解?
【问题讨论】:
-
"如何将这四个参数转换成像素单位" 设置
units = "in",则可以将height乘以dpi或width乘以dpi为获取垂直和水平的像素。 Wikipedia on dpi. -
我认为必须根据物理大小设置大小,以确保字体大小保持一致。如果仅以像素为单位设置大小,则一旦将文本放在具有特定物理大小的页面上,您将不知道文本的大小。如果您将两个示例图以相同的物理大小放在页面上,则字体大小应该相同。
-
@Marius,我同意你的看法。我也更喜欢物理尺寸而不是像素。它只是让我感到困惑,即使我设置了 5 * 4 的物理尺寸,通过更改不是物理尺寸参数的 dpi,.png 绘图尺寸也会发生变化。