web-dev-qa-db-ja.com

R、ggsaveのサイズを正確に設定する方法

R質問。

widthheightdpi、およびunitに混乱しました。

次の2つのサイズが異なるのはなぜですか?

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を変更すると、サイズが変わるのですか?

heightwidthunit、およびdpiの関係を理解する方法は?

または、これらの4つのパラメーターをピクセル単位に変換する方法を理解する方が簡単ですか?

20
WCMC

DPIが重要である理由を理解するには、次の2つのプロットを検討してください。

_ggsave(filename = "foo300.png", ggplot(mtcars, aes(x=wt, y=mpg)) +
           geom_point(size=2, shape=23) + theme_bw(base_size = 10),
       width = 5, height = 4, dpi = 300, units = "in", device='png')
ggsave(filename = "foo150.png", ggplot(mtcars, aes(x=wt, y=mpg)) +
           geom_point(size=2, shape=23) + theme_bw(base_size = 10),
       width = 10, height = 8, dpi = 150, units = "in", device='png')
_

結果のファイルのピクセルサイズは同じですが、それぞれのフォントサイズは異なります。それらをggsave()呼び出しと同じ物理サイズでページに配置すると、フォントサイズは正しくなります(つまり、ggsave()呼び出しのように10)。しかし、物理サイズが間違っているページに配置すると、フォントサイズは10になりません。DPIを増やしながら同じ物理サイズとフォントサイズを維持するには、画像のピクセル数を増やす必要があります。

22
Marius