在highcharter中为hc_add_series_list定义x值

时间:2019-04-14 14:08:55

标签: r list highcharts r-highcharter

我想为一个高宪章的线条图定义x值,因为我有分类x值,有时还有引用相同分类的值。无论如何,在12月15日的示例中显示为https://whatukthinks.org/eu/questions/should-the-united-kingdom-remain-a-member-of-the-eu-or-leave-the-eu/?removed都是有可能的。 使用函数hc_add_series,我可以定义x值,如下面的示例所示:

library(highcharter)
df = data_frame(x = c(1,1,3,3,5:7),y = c(100,105,110,120,80,90,98),name = 
c("A","A","A","A","B","B","B"))

hc2 <- highchart() %>%
    hc_add_series(df)

hc2

就我而言,我不知道开始会有多少个系列,所以我想使用hc_add_series_list,因为我可以预先定义列表。但后来我无法定义x值,因为数据始终被解释为y值。在阅读https://dantonnoriega.github.io/ultinomics.org/post/2017-04-05-highcharter-explainer.html之后,我认为子列表应该可以实现,但是直到现在我还算不上成功。我这样尝试过:

ds_new <- lapply((1:1), function(x){
  list(name = paste(trips_of_choice[x]),
       data = list(x = c(1:2),
                   y = c(1:2),
                   name =c("5.TA.26-3-j19-1.5.R")
       ))
})

因此要有一个包含子列表的列表,这些列表名为data并包含x和y数据。但这根本不起作用。

我希望有人可以在这里帮助我

1 个答案:

答案 0 :(得分:1)

假设您的系列存储在列表中:

df1 <- data.frame(x = c(1,2,3,4),
                  y = c(100,105,110,120),
                  name = c("A","A","A","A"))
df2 <- data.frame(x = c(3:6),
                  y = c(80,90,98,105),
                  name = c("B","B","B","B"))
series_list <- list(df1, df2)

您可以使用此解决方案绘制所有系列:

hc2 <- highchart()
for (k in 1:length(series_list)) {
   hc2 <- hc2 %>%
          hc_add_series(series_list[[k]])
}
hc2

enter image description here