-
Notifications
You must be signed in to change notification settings - Fork 636
Closed
Description
After upgrade from Plotly 4.5.6 to Plotly 4.7.0, plot height is incorrectly calculated when set reactively in plot_ly. This happens upon window resizing or tabsetPanel selection.
Prerequisites
- Plotly height is chosen via
plot_ly(..., height=<some dependency>) <some dependency>is a reactive Value (input$selectPlotin the example below)
Problem
- after resizing window, the height is set to the first value of the selectInput
Example
- When chosen "800" in the selectInput, the plot is correctly drawn with a height of 800px:
- After a resize of the window, the height is changed to the first value of the
selectInput(100px), even though this value did not change at all:
The same problem happens if there is a tabsetPanel in the page (e.g. below the plot). The plot height is changed when a different tab is clicked.
library(shiny)
library(plotly)
ui <-shinyUI(fluidPage(selectInput("selectPlot", "Choose desired plot", choices=c(100,800)), plotlyOutput("plot")))
server <- shinyServer(function(input,output, session){
output$plot <- renderPlotly({
plot_ly(mtcars, x=~gear, y=~cyl, height = input$selectPlot)
})
})
shinyApp(ui,server)
What I tried so far
- Putting the
heightargument inrenderPlotlyworks initially, but since the Plotly itself does never change its height, the plot itself stays at 800px the whole time (just the container height is changed):
ui: uiOutput(ns("plot"))
server:
output$plot <- renderUI({ plotlyOutput(session$ns("plotly"), height=input$height) })
output$plotly <- renderPlotly({ plot_ly(mtcars, x=~gear, y=~cyl)})
-
When I additionally make
output$plotlydependent oninput$height, the Plots "jumps" immediately after selecting any other height:output$plotly <- renderPlotly({ plot_ly(mtcars, x=~gear, y=~cyl, height=input$height) })
Note that all of this also happens if there is a simple tabsetPanel below the plot and another tab is chosen there.
Metadata
Metadata
Assignees
Labels
No labels

