R, comment définir exactement la taille de ggsave

R question.

je suis tellement confus par l' width,height,dpi et unit.

Pourquoi les deux dimensions différentes?

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')

et

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')

j'ai réglé les deux tailles de l'image 5 (pouces) * 4 (pouces). Mais pourquoi quand je change le dpi, les changements de taille?

Comment comprendre la relation entre height,width,unit et <!--5?

Ou comment traduire ces quatre paramètres en unité de pixels, ce qui est plus facile à comprendre pour moi?

15
demandé sur WCMC 2017-06-23 03:23:33

1 réponses

pour comprendre pourquoi le DPI est important, considérez ces deux tracés:

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')

les fichiers résultants ont les mêmes dimensions de pixels, mais la taille de la police dans chacun est différente. Si vous les placez sur une page avec la même taille physique que leur ggsave() appels, la taille de la police sera correcte (i.e. 10 comme dans le ggsave() appel). Mais si vous les mettez sur une page à la mauvaise taille physique, la taille de la police ne sera pas 10. Maintenir la même taille physique et la même taille de police tout en augmentant le DPI, vous devez augmenter le nombre de pixels dans l'image.

14
répondu Marius 2017-06-23 01:38:32