2016-11-06 2 views
0

Есть ли способ изменить параметры для plotOutput() реактивно? Предположим, у меня есть селектор ввода, который позволяет мне выбирать тип сюжета (разброс, 'p' или линейный график 'l'). Для участка рассеяния я хочу установить brush как "rowBrush", а для линейного графика хочу сделать это "colBrush" и direction = "x". Заранее спасибо!значение щетки для plotOutput реактивно

+1

Если вы создаете «plotOutput» на стороне сервера с помощью 'renderUI', то вы можете динамически изменять параметры. –

+0

Я не могу заставить renderUI и renderPlot работать вместе: ( –

ответ

0

Вот пример.

library(shiny) 

ui <- fluidPage(

    titlePanel("Dynamic brush"), 

    sidebarLayout(
    sidebarPanel(
     selectInput("plot_type", "Plot type", c("p", "l"), selected = "p") 
    ), 

    mainPanel(
     uiOutput("plot_out") 
    ) 
) 
) 

server <- function(input, output) { 

    output$plot_out <- renderUI({ 
    brush <- NULL 
    if (input$plot_type == "p") { 
     brush <- "rowBrush" 
    } else if (input$plot_type == "l") { 
     brush <- "colBrush" 
    } 
    plotOutput("plot", brush=brush) 
    }) 

    output$plot <- renderPlot({ 
    plot(mtcars$mpg, mtcars$cyl, type=input$plot_type) 
    }) 

} 

shinyApp(ui = ui, server = server) 
+0

Спасибо большое! –

Смежные вопросы