Highchart堆叠列

Highchart堆叠列,r,r-highcharter,R,R Highcharter,我有以下图表: highchart() %>% hc_title(text = "Composition") %>% hc_subtitle(text = "Subtitle") %>% hc_chart(type = "column", polar = F) %>% hc_xAxis(categories = c("A", "B", "C", "D", "E")) %>% hc_add_series(name = "Type A", d

我有以下图表:

highchart() %>%
  hc_title(text = "Composition") %>% 
  hc_subtitle(text = "Subtitle") %>% 
  hc_chart(type = "column", polar = F) %>% 
  hc_xAxis(categories = c("A", "B", "C", "D", "E")) %>% 
  hc_add_series(name = "Type A", data = c(5, 3, 4, 7, 2), stack = "A") %>% 
  hc_add_series(name = "Type B", data = c(5, 3, 4, 7, 2), stack = "A") %>% 
  hc_add_series(name = "Type C", data = c(5, 3, 4, 7, 2), stack = "A") %>% 
  hc_add_series(name = "Type D", data = c(5, 3, 4, 7, 2), stack = "A") %>% 
  hc_add_series(name = "Type E", data = c(5, 3, 4, 7, 2), stack = "A") %>% 
  hc_add_series(name = "Type A", data = c(2, 2, 3, 2, 1), stack = "B") %>%
  hc_add_series(name = "Type B", data = c(2, 2, 3, 2, 1), stack = "B") %>%
  hc_add_series(name = "Type C", data = c(2, 2, 3, 2, 1), stack = "B") %>%
  hc_add_series(name = "Type D", data = c(2, 2, 3, 2, 1), stack = "B") %>%
  hc_add_series(name = "Type E", data = c(2, 2, 3, 2, 1), stack = "B") %>%
  hc_plotOptions(column = list(
    dataLabels = list(enabled = FALSE),
    stacking = "normal"))
该图正在创建不同的变量,并为每个stack=“A”和stack=“B”复制图例。然后,我们在图例中有两次类型A,在图例中有两次类型B,等等。如何堆叠不同的组,并且每个组只有一个变量

我添加一张图片:

编辑:我添加了一些数据

df <- structure(list(TYPE = c("TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", 
"TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", 
"TYPE_A", "TYPE_A", "TYPE_A", "TYPE_A", "TYPE_B", "TYPE_B", "TYPE_B", 
"TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B", 
"TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B", "TYPE_B"), SUB_TYPE = c("Sub_A", 
"Sub_A", "Sub_A", "Sub_A", "Sub_A", "Sub_B", "Sub_B", "Sub_B", 
"Sub_B", "Sub_B", "Sub_C", "Sub_C", "Sub_C", "Sub_C", "Sub_C", 
"Sub_A", "Sub_A", "Sub_A", "Sub_A", "Sub_A", "Sub_B", "Sub_B", 
"Sub_B", "Sub_B", "Sub_B", "Sub_C", "Sub_C", "Sub_C", "Sub_C", 
"Sub_C"), PERIOD = c("curr", "t0", "t1", "t2", "t3", "curr", 
"t0", "t1", "t2", "t3", "curr", "t0", "t1", "t2", "t3", "curr", 
"t0", "t1", "t2", "t3", "curr", "t0", "t1", "t2", "t3", "curr", 
"t0", "t1", "t2", "t3"), VALUE = c(296.6954, 352.8885, 360.5875, 
375.2185, 389.8869, 1409.0355, 1470.8772, 1537.3365, 1590.0784, 
1650.0942, 115.7838, 117.8871, 122.5989, 133.0147, 140.5065, 
296.6954, 352.8885, 360.5875, 437.319, 382.3504, 1409.0355, 1470.8772, 
1440.1987, 1289.093, 1244.0955, 115.7838, 117.8871, 169.3969, 
113.2784, 98.1415)), .Names = c("TYPE", "SUB_TYPE", "PERIOD", 
"VALUE"), row.names = c(NA, -30L), class = "data.frame")
df当您第二次添加系列“Type A”时,它被视为一个不同的系列,即使它具有相同的名称。这里我们可以做的是将第二个链接到第一个,将其附加到同一个图例条目(请参见),并手动设置相同的颜色

library(highcharter)

default_colors <- c("#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9",
                    "#f15c80", "#e4d354", "#2b908f", "#f45b5b", "#91e8e1")

highchart() %>%
  hc_title(text = "Composition") %>% 
  hc_subtitle(text = "Subtitle") %>% 
  hc_chart(type = "column", polar = F) %>% 
  hc_xAxis(categories = c("A", "B", "C", "D", "E")) %>% 
  hc_add_series(name = "Type A", data = c(5, 3, 4, 7, 2), stack = "A",
                id = "AA", color = default_colors[[1]]) %>% 
  hc_add_series(name = "Type B", data = c(5, 3, 4, 7, 2), stack = "A",
                id = "BA", color = default_colors[[2]]) %>% 
  hc_add_series(name = "Type C", data = c(5, 3, 4, 7, 2), stack = "A",
                id = "CA", color = default_colors[[3]]) %>% 
  hc_add_series(name = "Type D", data = c(5, 3, 4, 7, 2), stack = "A",
                id = "DA", color = default_colors[[4]]) %>% 
  hc_add_series(name = "Type E", data = c(5, 3, 4, 7, 2), stack = "A",
                id = "EA", color = default_colors[[5]]) %>% 
  hc_add_series(name = "Type A", data = c(2, 2, 3, 2, 1), stack = "B",
                linkedTo = "AA", color = default_colors[[1]]) %>%
  hc_add_series(name = "Type B", data = c(2, 2, 3, 2, 1), stack = "B",
                linkedTo = "BA", color = default_colors[[2]]) %>%
  hc_add_series(name = "Type C", data = c(2, 2, 3, 2, 1), stack = "B",
                linkedTo = "CA", color = default_colors[[3]]) %>%
  hc_add_series(name = "Type D", data = c(2, 2, 3, 2, 1), stack = "B",
                linkedTo = "DA", color = default_colors[[4]]) %>%
  hc_add_series(name = "Type E", data = c(2, 2, 3, 2, 1), stack = "B",
                linkedTo = "EA", color = default_colors[[5]]) %>%
  hc_plotOptions(column = list(
    dataLabels = list(enabled = FALSE),
    stacking = "normal"))

现在还不清楚你希望你的情节是什么样子。你能详细解释一下吗?图片会很有帮助。我添加了一张图片,thanksIt效果很好,但是我无法从data.frame和使用
list.parse()
获得相同的结果。你知道吗?目标是从data.frame自动执行此操作。谢谢你能提供一个data.frame的例子吗?当然,我会在主帖子中添加一些数据。谢谢