После загрузки ggplot2 участок Highcharter не горит блестящим - PullRequest
0 голосов
/ 20 февраля 2020

В моем блестящем приложении я хочу создать линейный график, где значение group основано на выбранном пользователем вводе: input$tt_groupvar. Highcharter может сделать это, используя hcaes_string, но мое приложение в реальной жизни загружает ggplot2, и hchart завершается неудачей.

В нижеприведенном приложении 1 ggplot2 НЕ загружается явно, и график правильно группирует данные на основе input$tt_groupvar. Но в app2 ниже, , где единственное отличие состоит в том, что ggplot2 загружен , приложение не работает. После того, как ggplot2 загружен через app2, app1 больше не работает правильно.

Я знаю, что могу сделать это правильно, используя ggplot2 или plotly, но я ДЕЙСТВИТЕЛЬНО хочу использовать highcharter. Есть ли способ обойти это?

Любое понимание очень ценится!

app1

library(shiny)
library(dplyr)
library(highcharter)

df <- data.frame(floorDate = as.Date(c("01/01/2017", "01/01/2017", "01/01/2017", "01/01/2018", "01/01/2018", "01/01/2018", "01/01/2019", "01/01/2019", "01/01/2019", "06/01/2017", "11/01/2018", "12/01/2019"), format = "%m/%d/%Y"),
                   location = c("MWH", "MWH", "MWH", "MWH", "SH", "MWH","MWH","MWH", "SH", "SH", "MIF", "MIF"),
                   ethnicity = c("W", "W", "B", "B", "MULT", "MULT","MULT","W","W","B","MULT","B"))

ui <- fluidPage(
  titlePanel("my title"),

  sidebarLayout(
    sidebarPanel(
      helpText("Select a grouping variable to plot the number of ROCs 
               by the values in that group across January 2017 to January 2020."),

      selectizeInput("tt_groupvar",
                     label = "Choose a grouping variable:",
                     choices = c("Location"="location", "Ethnicity"="ethnicity"),
                     multiple = FALSE,
                     selected = c("location"))
      ),

    mainPanel(
      highchartOutput("timeTrend_1")
      )
  )
  )

server <- function(input, output) {

  output$timeTrend_1 <- renderHighchart({
    hchart(df %>% 
             group_by_at(c("floorDate", input$tt_groupvar)) %>%
             count(),
           type = "line",
           hcaes_string(x = "floorDate", y = "n", group = input$tt_groupvar)) %>% #THE ISSUE IS HERE!!!!
      hc_xAxis(title = list(text = "")) %>%
      hc_yAxis(title = list(text = "# of ROCs")) %>%
      hc_title(text = "Number of ROCs per Month by Group from 2017 to January 2019")
  })
}

shinyApp(ui, server)

app2



library(shiny)
library(dplyr)
library(highcharter)
library(ggplot2)


df <- data.frame(floorDate = as.Date(c("01/01/2017", "01/01/2017", "01/01/2017", "01/01/2018", "01/01/2018", "01/01/2018", "01/01/2019", "01/01/2019", "01/01/2019", "06/01/2017", "11/01/2018", "12/01/2019"), format = "%m/%d/%Y"),
                   location = c("MWH", "MWH", "MWH", "MWH", "SH", "MWH","MWH","MWH", "SH", "SH", "MIF", "MIF"),
                   ethnicity = c("W", "W", "B", "B", "MULT", "MULT","MULT","W","W","B","MULT","B"))

ui <- fluidPage(
  titlePanel("my title"),

  sidebarLayout(
    sidebarPanel(
      helpText("Select a grouping variable to plot the number of ROCs 
               by the values in that group across January 2017 to January 2020."),

      selectizeInput("tt_groupvar",
                     label = "Choose a grouping variable:",
                     choices = c("Location"="location", "Ethnicity"="ethnicity"),
                     multiple = FALSE,
                     selected = c("location"))
      ),

    mainPanel(
      highchartOutput("timeTrend_1")
      )
  )
  )

server <- function(input, output) {

  output$timeTrend_1 <- renderHighchart({
    hchart(df %>% 
             group_by_at(c("floorDate", input$tt_groupvar)) %>%
             count(),
           type = "line",
           hcaes_string(x = "floorDate", y = "n", group = input$tt_groupvar)) %>% # THE ISSUE IS HERE!
      hc_xAxis(title = list(text = "")) %>%
      hc_yAxis(title = list(text = "# of ROCs")) %>%
      hc_title(text = "Number of ROCs per Month by Group from 2017 to January 2019")
  })
}

shinyApp(ui, server)


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