我有一个使用情节的闪亮应用程序。我希望应用程序在选择新输入时更新绘图时保持当前图例切换。
要了解我之后的行为是一个应用程序:
802.11
采取以下行动:
library(shiny)
library(plotly)
data(diamonds, package = "ggplot2")
nms <- names(diamonds)
ui <- fluidPage(
headerPanel("Diamonds Explorer"),
sidebarPanel(
sliderInput('sampleSize', 'Sample Size', min = 1, max = nrow(diamonds),
value = 1000, step = 500, round = 0),
selectInput('x', 'X', choices = nms, selected = "carat"),
selectInput('y', 'Y', choices = nms, selected = "price"),
selectInput('color', 'Color', choices = nms, selected = "clarity"),
selectInput('facet_row', 'Facet Row', c(None = '.', nms), selected = "clarity"),
selectInput('facet_col', 'Facet Column', c(None = '.', nms)),
sliderInput('plotHeight', 'Height of plot (in pixels)',
min = 100, max = 2000, value = 1000)
),
mainPanel(
plotlyOutput('trendPlot', height = "900px")
)
)
server <- function(input, output) {
#add reactive data information. Dataset = built in diamonds data
dataset <- reactive({
diamonds[sample(nrow(diamonds), input$sampleSize),]
})
output$trendPlot <- renderPlotly({
# build graph with ggplot syntax
p <- ggplot(dataset(), aes_string(x = input$x, y = input$y, color = input$color)) +
geom_point()
# if at least one facet column/row is specified, add it
facets <- paste(input$facet_row, '~', input$facet_col)
if (facets != '. ~ .') p <- p + facet_grid(facets)
ggplotly(p) %>%
layout(height = input$plotHeight, autosize=TRUE)
})
}
shinyApp(ui, server)
以关闭顶面。l1
输入滑块。请注意,Sample Size
现在已重新启用。有没有办法在情节更新时保持切换状态?