subplot() not producing the interactive equivalent of gridExtra::grid.arrange() #2413
Open
Description
Given:
library(ggplot2)
library(gridExtra)
library(plotly)
library(colorRamps)
d <- data.frame(x=sample(1:10)/10, y=sample(1:10)/10, z=sample(1:10)/10, c=sample(LETTERS[1:5],size=10,replace=TRUE))
g1 <- ggplot(d) +
geom_point(aes(x=x, y=y, fill = z),
pch=21,size=4) +
facet_wrap(~c,labeller = label_both) +
scale_fill_gradientn(colors = matlab.like2(16),limits=c(0, 100)) +
xlim(c(0,1)) + ylim(c(0,1)) +
coord_fixed(ratio = 1) +
theme(legend.position=c(0.85,0.2), legend.background=element_blank()) +
labs(fill = "%")
g2<- g1+ggtitle("Plot 2")
g3<- g1+gtitle("Plot 3")
g4<- g1+ggtitle("Plot 4")
g1<- g1+ggtitle("Plot 1")
p = list(g1,g2,g3,g4) %>% map(~.x + labs(x=NULL, y=NULL))
yleft= "X"
xbottom= "Y"
grid.arrange(grobs=p,bottom = xbottom, left = yleft,nrow=2)
I want to get the same plot but with interactive browsing of the values. I try:
pg1 <- ggplotly(g1)
pg2 <- ggplotly(g2)
pg3 <- ggplotly(g3)
pg4 <- ggplotly(g4)
Individual plots are ok:
pg1
But
subplot(list(pg1, pg2,pg3,pg4), nrows=2,
shareX=FALSE, shareY=FALSE,titleX=TRUE,titleY=TRUE)
or
subplot(list(pg1, pg2,pg3,pg4), nrows=2,
shareX=FALSE, shareY=FALSE,titleX=FALSE,titleY=FALSE)
result into:
Which is almost good but displays only 1 title (and in the wrong place) and no axes titles.
I try
subplot(list(pg1, pg2,pg3,pg4), nrows=2,
shareX=TRUE, shareY=TRUE,titleX=FALSE,titleY=FALSE)
and
subplot(list(pg1, pg2,pg3,pg4), nrows=2,
shareX=TRUE, shareY=TRUE,titleX=TRUE,titleY=TRUE)
and the result is even worse:
Is this a bug or am I doing something wrong? Is there an alternative way to get the interactive version of the grid?
Metadata
Assignees
Labels
No labels