Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reactive plot height not working as expected since 4.6.0 #1068

Closed
shosaco opened this issue Jul 7, 2017 · 1 comment
Closed

Reactive plot height not working as expected since 4.6.0 #1068

shosaco opened this issue Jul 7, 2017 · 1 comment

Comments

@shosaco
Copy link

shosaco commented Jul 7, 2017

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$selectPlot in 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:

ex1

  • 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:

ex2

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

  1. Putting the height argument in renderPlotly works 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)})
  1. When I additionally make output$plotly dependent on input$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.

@shosaco shosaco changed the title Height incorrectly set after window resizing or tabsetPanel selection Reactive plot height not working as expected Jul 21, 2017
@shosaco shosaco changed the title Reactive plot height not working as expected Reactive plot height not working as expected since 4.6.0 Jul 21, 2017
@shosaco
Copy link
Author

shosaco commented Sep 23, 2018

Carson, thank you so much! This has been bothering me for a long time. Thanks again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant