[R] ggsave() with width only

Ivan Calandra c@|@ndr@ @end|ng |rom rgzm@de
Mon Sep 20 16:09:00 CEST 2021


Dear Adam,

The function cowplot::save_plot() actually doesn't help in my case 
because I need to know the aspect ratio (which I don't in advance). If I 
knew the aspect ratio, I could calculate the height from the width or 
vice-versa, and then I could use ggplot2::ggsave().

I have found a workaround using the package patchwork: I put the plots 
together into one plot, that I save on an A4 page.

Best,
Ivan

--
Dr. Ivan Calandra
Imaging lab
RGZM - MONREPOS Archaeological Research Centre
Schloss Monrepos
56567 Neuwied, Germany
+49 (0) 2631 9772-243
https://www.researchgate.net/profile/Ivan_Calandra

On 14/09/2021 9:17, Ivan Calandra wrote:
> Thank you Adam!
>
> I'm a bit surprised that an extra package is needed for this, but why 
> not!
>
> Best,
> Ivan
>
> -- 
> Dr. Ivan Calandra
> Imaging lab
> RGZM - MONREPOS Archaeological Research Centre
> Schloss Monrepos
> 56567 Neuwied, Germany
> +49 (0) 2631 9772-243
> https://www.researchgate.net/profile/Ivan_Calandra
>
> On 13/09/2021 15:40, Adam Wysokiński wrote:
>> Hi,
>> Instead of ggsave(), use save_plot() from the "cowplot" package:
>>
>> library(ggplot2)
>> library(cowplot)
>> x <- 1:10
>> y <- x^2
>> df <- data.frame(x, y)
>> p <- ggplot(df, aes(x, y)) + geom_point()
>> save_plot("/tmp/plot.png", p, base_aspect_ratio = 1, base_width = 5, 
>> base_height = NULL)
>>



More information about the R-help mailing list