Skip to content

Conversation

@DavZim
Copy link

@DavZim DavZim commented Mar 17, 2023

This PR adds functionality that allows the user to align plots by axis values, effectively closing #173.

Note that this is using the code by Z.lin as proposed here on SO.

Both align_plots and plot_grid gain a new flag align_axis = FALSE. If set to TRUE, the graphs are aligned by their axis values as well.

First a quick showcase:

library(ggplot2)

p1 <- ggplot(mtcars, aes(x = disp, y = mpg)) + geom_point()

# Vertical Align (by X axis)
p2 <- ggplot(mtcars[mtcars$disp > 300, ], aes(x = disp, y = mpg)) + geom_point()
plot_grid(p1, p2, ncol = 1, align = "v",  align_axis = TRUE)

image

# Horizontal Align (by Y axis)
p3 <- ggplot(mtcars[mtcars$mpg > 20, ], aes(x = disp, y = mpg)) + geom_point()
plot_grid(p1, p3, nrow = 1, align = "h",  align_axis = TRUE)

image

There are some tests added as well, but especially the tests for align_plots() are very crude/early as I don't have enough experience with the internals of units and there are some minor differences in some elements of the units. So far I captured the printed output, which is identical. We probably want to update that.

Let me know if there are tests missing and if so which ones. Also feel free to add to this.

@fdecarpentier
Copy link

Hi, is there any news on this functionality? I don't think it is possible with patchwork either. It would be very useful to me. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants