使用plotly和Shiny服务器重复图例条目

时间:2017-03-13 22:59:56

标签: r shiny plotly shiny-server

我想在R中绘制数据,以便用户可以选择要绘制的实例(哪个因子级别)。我想使用plotly进行操作,然后使用Shiny Server进行托管。

问题是我在更新选择后重复了两次重复的每个图例条目(即第一次正确渲染,但在我点击另一个变量进行绘图后,问题出现了)。

以下是插图: enter image description here

奇怪的是,在本地运行时(例如,在R Studio内部或使用runApp())或使用shinyapps.io时,此问题不存在,但仅在使用Shiny Server.R

有没有办法解决这个问题并避免重复输入?

可重复的例子:

library(plotly)

ui <- fluidPage(
  fluidRow(
    column(2, 
           checkboxGroupInput("species", 
                              label = "Species", 
                              choices = unique(iris$Species))),
    column(10, 
           plotlyOutput('irisPlotly'))
  )
)

server <- function(input, output) {
  # Filter only selected species
  selectedData <- reactive({
    iris[iris$Species %in% input$species, ]
  })

  # Render plotly plot
  output$irisPlotly <- renderPlotly({
    plot_ly(selectedData(), 
            x = ~Sepal.Length, 
            y =~Sepal.Width,
            color = ~Species) %>%
      layout(showlegend = TRUE)
  })
}

shinyApp(ui = ui, server = server)

sessionInfo()的输出:

R version 3.3.2 (2016-10-31) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Arch Linux 

locale: 
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C 
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C 
[9] LC_ADDRESS=C LC_TELEPHONE=C 
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C 

attached base packages: 
[1] stats graphics grDevices utils datasets methods base 

other attached packages: 
[1] plotly_4.5.6.9000 ggplot2_2.2.1.9000 shiny_1.0.0 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.9 magrittr_1.5 munsell_0.4.3 viridisLite_0.1.3 
[5] colorspace_1.3-2 xtable_1.8-2 R6_2.2.0 httr_1.2.1 
[9] plyr_1.8.4 dplyr_0.5.0 tools_3.3.2 grid_3.3.2 
[13] gtable_0.2.0 DBI_0.5-1 crosstalk_1.0.0 htmltools_0.3.5 
[17] yaml_2.1.14 lazyeval_0.2.0 digest_0.6.12 assertthat_0.1 
[21] tibble_1.2 tidyr_0.6.1 purrr_0.2.2 base64enc_0.1-3 
[25] htmlwidgets_0.8 mime_0.5 scales_0.4.1 jsonlite_1.3 
[29] httpuv_1.3.3 

1 个答案:

答案 0 :(得分:0)

问题是由普通和闪亮用户的不同版本的plotly包引起的。闪亮的服务器(默认情况下至少是在&#34;闪亮的&#34;用户,但是当您在本地运行应用程序时,它将在您当前的用户下运行。因此,这两种运行应用程序的方式是使用不同的软件包版本。

此外,CRAN上提供的稳定版图(plotly_4.5.6)中不存在此问题。