Ошибка рендеринга круговой диаграммы Highcharter в приложении Shiny - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь построить круговую диаграмму, используя highcharter в приложении Shiny с 2 пользовательскими элементами управления. Вот соответствующий код UI:

column(
                  6,
                  fluidRow(
                    column(6,selectInput('type','Select Builder/Owner',
                                         choices = c('Builder'="Builder",'Owner Group'="`Owner Group`"))),
                    column(6, sliderInput('minvsl',"Select minimum number of vessels",min=1,value=10,max=100))
                  ),
                  highchartOutput('Builder',width='100%', height = '600px')
                )

А это код сервера для рендеринга графика:

output$Builder <- renderHighchart({
ByBuilder <-   orderbook %>% dplyr::group_by_(input$type) %>% dplyr::summarise(Count=n()) %>%
    filter(Count>=input$minvsl)

    highchart() %>%
    hc_add_series(ByBuilder,hcaes_(x=input$type,y="Count"), type="pie",
                  dataLabels=list(enabled=TRUE),innerSize= '40%', size ='80%',
                  tooltip=list(pointFormat = paste('{point.y} ships<br/><b>{point.percentage:.1f}%</b>'))) %>%
    hc_add_theme(hc_theme_smpl()) %>%
    hc_title(text = paste("Construction by", input$type))%>%
    hc_subtitle(text = paste("Control the min. number of constructions by the numeric slider"))
})

Возвращается при следующей ошибке:

Warning: Error in mutate_impl: Column `x` is of unsupported type quoted call

Не могу понять, почему. Вот некоторые тестовые данные:

structure(list(Builder = c("Hyundai Mipo", "Onomichi Dockyd", 
"Onomichi Dockyd", "Hyundai Mipo", "Hyundai Mipo", "Hyundai Mipo", 
"Samsung HI", "Samsung HI", "Samsung HI", "Samsung HI"), `Owner Group` = c("SK Holdings", 
"Nissen Kaiun", "Nissen Kaiun", "Overseas Shipholding", "Overseas Shipholding", 
"Sonatrach Petroleum", "Mitsui & Co", "Mitsui & Co", "Mitsui & Co", 
"Mitsui & Co")), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))

Я использую версию 0.6.0 highcharter.

1 Ответ

0 голосов
/ 05 сентября 2018

Хотя я все еще пытаюсь обернуть голову вокруг tidyeval, поскольку я чувствую, что это может быть проблемой, вот быстрый, хотя и не самый элегантный из хаков, который работает:

output$Builder <- renderHighchart({
ByBuilder <-   orderbook %>% dplyr::group_by_(input$type) %>% dplyr::summarise(Count=n()) %>%
    filter(Count>=input$minvsl)
colnames(ByBuilder)[1] <- "test"
    highchart() %>%
      hc_add_series(ByBuilder,hcaes(x='test',y="Count"), type="pie",
                  dataLabels=list(enabled=TRUE),innerSize= '40%', size ='80%',
                  tooltip=list(pointFormat = paste('{point.y} ships<br/><b>{point.percentage:.1f}%</b>'))) %>%
    hc_add_theme(hc_theme_smpl()) %>%
    hc_title(text = paste("Construction by", input$type))%>%
    hc_subtitle(text = paste("Control the min. number of constructions by the numeric slider"))
})

Просто добавлено имя столбца, а не input$type.

...