首页 > 解决方案 > 如何使用 highchart() 和列表更正空白绘图区域

问题描述

使用 Stack Overflow:R highcharts 多重堆积条形图

我可以使用我拥有的数据集创建堆积柱形图。但是,该集合中的数据“类型”是动态的,因此我正在尝试实现: Highcharter 堆叠列分组不使用 hchart()

但是,如果我下载并运行该代码,我生成的列表看起来与示例相同,但该图显示为空。lenged 正确识别类型,但图表不填充。我尝试在浏览器中运行它,以防 R studio 没有正确处理它但无济于事。

我已经尝试并使用了部分解决方案: R highcharts multiple stacked bar chart

但是,由于数据的动态类型,我需要更多类似的解决方案: Highcharter stacked column groupings not using hchart()

我比较了这些列表,它们看起来相同(数据不同但结构正确)

data <- data[!duplicated(data$AcctID), ]

data$ExpireDate <- mdy_hm(data$ExpireDate)
data$ExpireDateGroup <- floor_date(data$ExpireDate, "day")

cheeseData <- data %>%
  mutate(Day = as.character(ExpireDateGroup)) %>%
  group_by(Day, Cheese) %>%
  summarise(CheeseWheels = n())

byCheese.list <- cheeseData %>%
  group_by(Cheese) %>%
  do(cheeseData = list_parse2(.[, c('Day', 'CheeseWheels')])) %>%
  rename(name = Cheese) %>%
  mutate(Cheese = 'column') %>%
  list_parse()

highchart() %>%
  hc_xAxis(categories = cheeseData$Day) %>%
  hc_add_series_list(byCheese.list) %>%
  hc_plotOptions(series = list(stacking = 'normal'))

预期结果:应该有一个堆积柱形图 空柱形图

样本数据

    data <- structure(list(AcctID = c(251981L, 261775L, 275048L, 282754L, 
                          286490L, 279683L, 277289L, 282031L, 287776L, 284062L), CreatedDate = c("4/2/2019 18:48", 
                                                                                                 "4/18/2019 16:14", "5/10/2019 7:49", "5/22/2019 15:13", "5/29/2019 11:29", 
                                                                                                 "5/17/2019 14:05", "5/14/2019 10:32", "5/21/2019 16:59", "5/31/2019 7:56", 
                                                                                                 "5/24/2019 14:09"), ExpireDate = structure(c(1559642040, 1559642100, 
                                                                                                                                              1559642160, 1559642220, 1559642220, 1559642280, 1559642340, 1559642340, 
                                                                                                                                              1559642400, 1559642460), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
               Cheese = c("Gouda", "Gouda", "Gouda", "Gouda", "Gouda", "Gouda", 
                          "Gouda", "Gouda", "Gouda", "Gouda"), ExpireDateGroup = structure(c(1559606400, 
                                                                                             1559606400, 1559606400, 1559606400, 1559606400, 1559606400, 
                                                                                             1559606400, 1559606400, 1559606400, 1559606400), class = c("POSIXct", 
                                                                                                                                                        "POSIXt"), tzone = "UTC")), row.names = c(1L, 3L, 5L, 6L, 
                                                                                                                                                                                                  8L, 10L, 11L, 12L, 13L, 14L), class = "data.frame")

标签: rr-highcharter

解决方案


推荐阅读