You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When attempting to display multiple histograms using subplot from the plotly package, the plots in the top row and bottom row appear with less spacing, making them difficult to analyze. This issue is primarily reproducible when there are large number of visualizations to plot together.
Here is a minimal reprex for the same:
# Load necessary libraries
library(ggplot2)
library(plotly)
# set seed for reproducibility
set.seed(123)
# simulate a datasetsimulateDataset<-function(numRows=100, numCols=40) {
data<-data.frame(matrix(nrow=numRows, ncol=numCols))
for (iin1:numCols) {
if (i%%2==0) {
data[[i]] <- rnorm(numRows, mean=50, sd=10) # Normal distribution
} else {
data[[i]] <- rexp(numRows, rate=0.1) # Exponential distribution
}
}
names(data) <- paste0("Var", 1:numCols)
return(data)
}
# simulate the datadf<- simulateDataset(numRows=100, numCols=45)
# create histograms and convert to plotlyplotList<- lapply(names(df), function(colName) {
if (is.numeric(df[[colName]])) {
p<- ggplot(df, aes(x=.data[[colName]])) +
geom_histogram(binwidth=0.5, fill='grey', color='black')
ggplotly(p)
}
})
# define number of rows based on number of plots in each rownumberOfRows<- ceiling(length(plotList) /3)
# display all plots together using subplot
subplot(plotList, nrows=numberOfRows, margin=0.05, titleX=TRUE, titleY=TRUE)
Expected Behavior:
Each histogram should have equal margins, with appropriate spacing and labels visible.
Screenshots
The text was updated successfully, but these errors were encountered:
the plots in the top row and bottom row appear with less spacing
I think the plots on the 1st and last row have more spaces than the other (cf. subplots.R) because the corresponding margins are not removed from their start/end coordinates. The suggested workaround will remove the margins spaces from their default allocated heights so all plots can have the same apparent size.
However doing that will lead to a total heights < 1 and in this case, the plots are centered So we end up with blank spaces at the top/bottom/left/right (it more or less force the top/left and bottom/right margins to the fist and last plots). This could be fine but to avoid that, the workaround add back the missing space evenly to all the plots (with your example, it works for the columns width but not for the rows heights, where this issue #2377 seems to occur...).
The workaround is not perfect though, especially if the margins are bigger than 1/numberOfRows or 1/numberOfCols the heights/width will be negative and will not be accepted by subplot().
Description:
When attempting to display multiple histograms using
subplot
from theplotly
package, the plots in the top row and bottom row appear with less spacing, making them difficult to analyze. This issue is primarily reproducible when there are large number of visualizations to plot together.Here is a minimal reprex for the same:
Expected Behavior:
Each histogram should have equal margins, with appropriate spacing and labels visible.
Screenshots
The text was updated successfully, but these errors were encountered: