plotly / plotly/plotly.R

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

Offen
#2,413 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
R
Sterne
2.7k
Forks
641
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den im Issue reproduzierten Aufrufen von ggplotly() und subplot() und vergleiche deren Ausgabe mit grid.arrange(). Verfolge, wie subplot() mehrere Plot-Titel, gemeinsame Achsen und Achsentitel behandelt. Als abgeschlossen gilt die Aufgabe, wenn die vier konvertierten Plots in einer interaktiven Anordnung mit zwei Zeilen die erwarteten Titel und Achsen beibehalten oder das Verhalten als Einschränkung dokumentiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
r
Bereich
data-visualization
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.