обновить график x / y на основе пользовательского ввода (блестящий) - PullRequest
0 голосов
/ 17 июня 2020

Учитывая блестящее приложение с графиком ggplot2, как бы вы обновили, какие переменные x и y используются для построения графика на основе пользовательского ввода?

Код:

library(shiny)


ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("xcol",
                  "X:",
                  choices = c("Sepal.Length", "Sepal.Width")
      ),
      selectInput("ycol",
                  "Y:",
                  choices = c("Sepal.Length", "Sepal.Width")
      )
    ),
    mainPanel(plotOutput("plot"))

  )
)

server <- function(input,output) {
  output$plot <- renderPlot({
    iris %>%
      ggplot(aes(input$xcol, input$ycol)) +
      geom_point()
  })
}

shinyApp(ui, server)

Желаемый выход:

enter image description here

Токовый выход: enter image description here

1 Ответ

1 голос
/ 17 июня 2020

Вы пытаетесь сопоставить эстетику с векторами символов в функции aes. Вместо этого вам нужно aes_string:

###<Omitted Library Calls and UI> 

server <- function(input,output) {
  output$plot <- renderPlot({
    iris %>%
      ggplot(aes_string(x= input$xcol, y = input$ycol)) +
      geom_point()
  })
}

###<Omitted shinyApp call>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...