Skip to content

subplot() not producing the interactive equivalent of gridExtra::grid.arrange() #2413

Open
@aloboa

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)

Image

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

Image

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:

Image

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:

Image

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions