【问题标题】:Error in rendering Highcharter Pie chart in Shiny App在 Shiny App 中渲染 Highcharter 饼图时出错
【发布时间】:2018-09-05 04:07:38
【问题描述】:

我正在尝试在具有 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 版。

【问题讨论】:

    标签: r shiny r-highcharter


    【解决方案1】:

    虽然我仍在努力解决 tidyeval 问题,但我觉得这可能是问题所在,这里有一个快速但不是最优雅的 hack 方法:

    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

    【讨论】:

      猜你喜欢
      • 2022-01-28
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多