从Plotly 4.5.6升级到Plotly 4.6.0(或更高版本)后,在plot_ly
中被动设置时,图表高度计算错误。这会在窗口大小调整或tabsetPanel选择时发生。
先决条件
plot_ly(..., height=<some dependency>)
<some dependency>
是一个反应值(下例中的input$height
)问题
示例
selectInput
(100px)的第一个值,即使此值根本没有变化:如果页面中有tabsetPanel
(例如情节下方),则会出现同样的问题。单击其他选项卡时,图表高度会发生变化。
library(shiny)
library(plotly)
ui <-shinyUI(fluidPage(
selectInput("height", "Choose desired height", choices=c(100,800)),
plotlyOutput("plot")))
server <- shinyServer(function(input,output, session){
output$plot <- renderPlotly({
plot_ly(mtcars, x=~gear, y=~cyl, height = input$height)
})
})
shinyApp(ui,server)
到目前为止我尝试了什么
height
中放置renderPlotly
参数最初是有效的,但由于Plotly本身从未改变其高度,因此绘图本身始终保持在800px(仅更改容器高度):< / LI>
醇>
ui:uiOutput("plot")
服务器:
output$plot <- renderUI({ plotlyOutput("plotly", height=input$height) })
output$plotly <- renderPlotly({ plot_ly(mtcars, x=~gear, y=~cyl)})
output$plotly
依赖input$height
时,情节&#34;跳跃&#34;选择任何其他高度后立即: output$plotly <- renderPlotly({ plot_ly(mtcars, x=~gear, y=~cyl, height=input$height) })
请注意,如果绘图下方有一个简单的tabsetPanel
并且在那里选择了另一个标签,则所有这些都会发生。
答案 0 :(得分:1)
此问题已最终解决,请参见this bug on github:。在版本4.8.0 中,此行为已得到纠正。
请注意,您需要将100%的高度添加到plotlyOutput,即plotlyOutput("plot", height = '100%')
,以获得完整的解决方案(这将适当地设置不可见的容器空间)。