在Shiny App中呈现Highcharter饼图时出错

时间:2018-09-05 04:07:39

标签: r shiny r-highcharter

我正在尝试在具有2个用户控件的Shiny应用程序中使用highcharter绘制饼图。以下是相关的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"))

我正在使用highcharter的0.6.0版。

1 个答案:

答案 0 :(得分:0)

虽然我仍在尝试把头扎在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