【问题标题】:HighcharteR: why does hc_series() not show my categorical data?HighcharteR:为什么 hc_series() 不显示我的分类数据?
【发布时间】:2020-04-15 02:40:19
【问题描述】:

我使用了很多 HighcharteR,但不知何故让自己陷入了困境。考虑以下示例:

library(highcharter)

list1 <- list(
          name = "series 1",
          data = list_parse(
                   data.frame("x" = c(1,2,3),
                              "y" = c(4,5,6),
                              "z" = c(1.5,1.2,0.5)))

)

highchart() %>%
  hc_chart(type = "bubble") %>%
  hc_series(list1)

当我运行它时,一切都很好——但是当我运行相同的图表但同时使用 xy 的分类数据时,什么都没有显示:

list2 <- list(
          name = "series 1",
          data = list_parse(
                   data.frame("x" = c("Q1","Q2","Q3"),
                              "y" = c("factor1","factor2","factor3"),
                              "z" = c(1.5,1.2,0.5)))
)

highchart() %>%
  hc_chart(type = "bubble") %>%
  hc_xAxis(type = "category") %>%
  hc_yAxis(type = "category") %>%
  hc_series(list2)

我尝试为两个轴显式设置type = "category"(尽管我认为在每个系列中查找name 值),以及使用categories = c("Q1","Q2","Q3") 显式设置类别,但都没有改变任何东西...

它没有给我任何错误消息,所以我不确定这里发生了什么......如果解决方案是显而易见的,我深表歉意(我,首先,在尝试了一个小时后看不到它!)。谢谢!

【问题讨论】:

    标签: r r-highcharter


    【解决方案1】:

    解决此问题的一种方法是保留 xy 数字,然后添加类别。类别将从 0 开始分配,因此在您的情况下为 0、1、2,但您可以通过在 0 处添加一个空类别并将 min 设置为 1 并将 max 设置为 3 来解决此问题

    list2 <- list(
      name = "series 1",
      data = list_parse(
        data.frame("x" = c(1, 2, 3),
                   "y" = c(1, 2, 3),
                   "z" = c(1.5,1.2,0.5)))
    )
    
    highchart() %>%
      hc_chart(type = "bubble") %>%
      hc_series(list2) %>% 
      hc_xAxis(categories = c("", "Q1","Q2","Q3"),
               min = 1, max = 3) %>% 
      hc_yAxis(categories = c("", "factor1", "factor2", "factor3"),
               min = 1, max = 3)
    

    【讨论】:

    • 在@astrofunkswag 周围做得很好,谢谢!仍然为为什么不能像那样传递分类变量感到困惑......
    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 2015-07-03
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2016-12-08
    • 2021-12-03
    相关资源
    最近更新 更多