On 07/25/2020 12:36 PM, Rui Barradas wrote: > Hello, > > Inline. > > Às 16:54 de 25/07/2020, H escreveu: >> On 07/24/2020 05:56 PM, Rui Barradas wrote: >>> Hello, >>> >>> I've just tried it. >>> >>> library(ggplot2) >>> #library(grid) >>> library(cowplot) >>> >>> s <- ggplot(data = subset(iris, Species == 'virginica'), aes(Sepal.Length, >>> Sepal.Width)) + geom_point() >>> v <- ggplot(data = subset(iris, Species == 'setosa'), aes(Sepal.Length, >>> Sepal.Width)) + geom_point() >>> >>> #g2 <- ggplotGrob(s) >>> #g3 <- ggplotGrob(v) >>> #g <- rbind(g2, g3, size = "first") >>> >>> cowplot::plot_grid(s, v, align = "h", nrow = 2, rel_heights = 2:1) >>> >>> >>> Hope this helps, >>> >>> Rui Barradas >>> >>> Às 19:57 de 24/07/2020, Felipe Carrillo via R-help escreveu: >>>> What about cowplot? >>>> https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html >>>> >>>> On Friday, July 24, 2020, 11:51:17 AM PDT, H <age...@meddatainc.com> >>>> wrote: >>>> On 07/24/2020 02:03 PM, Jeff Newmiller wrote: >>>>> The set of people interested in helping when you supply a minimal >>>>> reproducible example is rather larger than the set of people willing to >>>>> read the documentation for you (hint) and guess what aspect of alignment >>>>> you are having trouble with. >>>>> >>>>> On July 24, 2020 10:46:57 AM PDT, H <age...@meddatainc.com> wrote: >>>>>> On 07/24/2020 01:14 PM, John Kane wrote: >>>>>>> <i>Well, I am not looking for help debugging my code but for >>>>>> information to better understand arranging plots vertically. The code >>>>>> above aligns them horizontally as expected.</i> >>>>>>> Sigh, we know the code works but we do not know what the plots are >>>>>> and we cannot play around with them to see if we can help you if we >>>>>> have nothing to work with. >>>>>>> On Fri, 24 Jul 2020 at 12:12, H <age...@meddatainc.com >>>>>> <mailto:age...@meddatainc.com>> wrote: >>>>>>> On 07/24/2020 05:29 AM, Erich Subscriptions wrote: >>>>>>> > Hav a look at the packages cowplot and patchwork >>>>>>> > >>>>>>> >> On 24.07.2020, at 02:36, H <age...@meddatainc.com >>>>>> <mailto:age...@meddatainc.com>> wrote: >>>>>>> >> >>>>>>> >> I am trying to arrange two plots vertically, ie plot 2 below >>>>>> plot 1, where I want the plots to align columnwise but have a height >>>>>> ratio of eg 3:1. >>>>>>> >> >>>>>>> >> My attempts so far after consulting various webpages is that >>>>>> the following code aligns them columnwise correctly but I have, so far, >>>>>> failed in setting the relative heights... >>>>>>> >> >>>>>>> >> g2<-ggplotGrob(s) >>>>>>> >> g3<-ggplotGrob(v) >>>>>>> >> g<-rbind(g2, g3, size = "first") >>>>>>> >> g$widths<-unit.pmax(g2$widths, g3$widths) >>>>>>> >> >>>>>>> >> what would the appropriate statement for the relative heights >>>>>> to add here be? >>>>>>> >> >>>>>>> >> grid.newpage() >>>>>>> >> grid.draw(g) >>>>>>> >> >>>>>>> >> Thank you! >>>>>>> >> >>>>>>> >> ______________________________________________ >>>>>>> >> R-help@r-project.org <mailto:R-help@r-project.org> mailing >>>>>> list -- To UNSUBSCRIBE and more, see >>>>>>> >> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>>> >> PLEASE do read the posting guide >>>>>> http://www.R-project.org/posting-guide.html >>>>>>> >> and provide commented, minimal, self-contained, reproducible >>>>>> code. >>>>>>> So this is not possible without using one of those two packages? >>>>>> I got the impression I should be able to use grid.arrange to do so but >>>>>> was not able to get it to work without disturbing the width alignment >>>>>> above... >>>>>>> ______________________________________________ >>>>>>> R-help@r-project.org <mailto:R-help@r-project.org> mailing list >>>>>> -- To UNSUBSCRIBE and more, see >>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>>> PLEASE do read the posting guide >>>>>> http://www.R-project.org/posting-guide.html >>>>>>> and provide commented, minimal, self-contained, reproducible >>>>>> code. >>>>>>> -- >>>>>>> John Kane >>>>>>> Kingston ON Canada >>>>>> No need to play around with anything. I am simply looking for >>>>>> assistance on how to use eg arrangeGrob to not only align two plots >>>>>> columnwise but also adjust their heights relative to each other rather >>>>>> than 1:1. >>>>>> >>>>>> Can arrangeGrob() be used for that? >>>>>> >>>>>> >>>>>> [[alternative HTML version deleted]] >>>>>> >>>>>> ______________________________________________ >>>>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>> PLEASE do read the posting guide >>>>>> http://www.R-project.org/posting-guide.html >>>>>> and provide commented, minimal, self-contained, reproducible code. >>>> Look at >>>> https://cran.r-project.org/web/packages/egg/vignettes/Ecosystem.html where >>>> there are two mpg charts, one above the other. What would I need to add to: >>>> >>>> |library(gtable) g2 <-ggplotGrob(p2) g3 <-ggplotGrob(p3) g <-rbind(g2, g3, >>>> size = "first") g$widths <-unit.pmax(g2$widths, g3$widths) grid.newpage() >>>> grid.draw(g) | >>>> >>>> |to make the second chart 1/2 the size of the top one?| >>>> >>>> || >>>> >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> http://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> http://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>> >> Thank you for your example. However, this does not align the plot areas >> horizontally. It happens to do so in this example because the y-axis labels >> are the same length etc but when this is not the case, it fails. > > Maybe it fails but can you give an example? > The question, as far as I understand it, is about the plots' relative > heights, not about horizontal alignment. And (all) others have asked you to > give a reproducible example, please don't ask us to guess a use case axis > labels lengths (!), which is impossible to do. > > Anyway, the function cowplot::plot_grid has an argument `align`. One of the > possible values is "hv" for both horizontal and vertical alignment. > > Hope this helps, > > Rui Barradas > >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > The easiest demonstration would be to replace:
v <- ggplot(data = subset(iris, Species == 'setosa'), aes(Sepal.Length, Sepal.Width)) + geom_point() with: v <- ggplot(data = subset(iris, Species == 'setosa'), aes(Sepal.Length, Sepal.Width * 1000)) + geom_point() I am looking to not only being able to set relative heights of rows (as your code correctly does) but also have the plot areas aligned. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.