我想在R中绘制数据,以便用户可以选择要绘制的实例(哪个因子级别)。我想使用plotly进行操作,然后使用Shiny Server进行托管。
问题是我在更新选择后重复了两次重复的每个图例条目(即第一次正确渲染,但在我点击另一个变量进行绘图后,问题出现了)。
奇怪的是,在本地运行时(例如,在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
答案 0 :(得分:0)
问题是由普通和闪亮用户的不同版本的plotly包引起的。闪亮的服务器(默认情况下至少是在&#34;闪亮的&#34;用户,但是当您在本地运行应用程序时,它将在您当前的用户下运行。因此,这两种运行应用程序的方式是使用不同的软件包版本。
此外,CRAN上提供的稳定版图(plotly_4.5.6
)中不存在此问题。