Shiny plotly sizing issue for plotlyOutput() when width = 100%
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- R
- Sterne
- 2.7k
- Forks
- 641
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
When using the default width = 100% for plotlyOutput() in Shiny apps, I always run into issues where the width doesn't scale to the full width when clicking away before the plot is fully rendered. When clicking back, the plot's width doesn't adjust or rescale. This setting occurs often in practice when designing a shinydashboard with multiple tabItems(). Minimal example and a GIF to better explain what I mean below. Posting it here, but please advise if this should be an htmlwidgets or shiny issue instead.

library(shiny)
library(plotly)
ui <- navbarPage(
title = "Minimal Example",
tabPanel("Home", HTML("Click the `Plot` tab and then rapidly back on the `Home` tab. Wait 2 seconds and then click the `Plot` tab again.")),
tabPanel("Plot", plotlyOutput("plot"))
)
server <- function(input, output) {
output$plot <- renderPlotly({
Sys.sleep(2)
plot_ly(iris, x = ~Sepal.Width, y = ~Sepal.Length, type = "scatter", mode = "markers")
})
}
shinyApp(ui, server)
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das bereitgestellte minimale R Shiny-Beispiel auszuführen und das Verhalten beim Wechseln zwischen Tabs mit plotlyOutput() und renderPlotly() zu reproduzieren. Untersuche, ob das Problem mit der Größenanpassung in plotly.R, htmlwidgets oder Shiny liegt; abgeschlossen ist die Aufgabe, wenn sich der Plot nach der Rückkehr zu seinem Tab auf die volle Breite erweitert, selbst wenn das Rendering verzögert wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- plotly, r
- Bereich
- data-visualization, frontend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100