r - Highcharter R 堆积条形图中的多个系列

标签 r highcharts

在浏览了 highcharter 包文档,访问了 JBKunst 他的网站,并查看了 list.parse2() 后,我仍然无法解决问题。问题如下:希望将 data.frame 中的多个系列绘制成堆叠条形图,系列可以是 10 - 30 个系列。目前,该系列已定义如下,但显然必须有一种更简单的方法,例如将列表或融合的 data.frame 传递给函数 hc_series,类似于可以使用 ggplot2 完成的操作。

在带有虚拟数据的代码下方

mydata <- data.frame(A=runif(1:10),
               B=runif(1:10),
               C=runif(1:10))

highchart() %>% 
hc_chart(type = "column") %>% 
hc_title(text = "MyGraph") %>% 
hc_yAxis(title = list(text = "Weights")) %>% 
hc_plotOptions(column = list(
   dataLabels = list(enabled = FALSE),
   stacking = "normal",
   enableMouseTracking = FALSE)
   ) %>% 
hc_series(list(name="A",data=mydata$A),
        list(name="B",data=mydata$B),
        list(name="C",data=mydata$C))

产生这个图表:
enter image description here

最佳答案

我认为添加倍数系列的一个好方法是使用 hc_add_series_list (oc 你可以使用 for 循环)它需要一个系列列表(一个系列例如 list(name="A",data=mydata$A)

正如你所说,你需要融化/收集数据,你可以使用tidyr包裹:

mynewdata <- gather(mydata)

然后您需要按 key 对数据进行分组为每个 key 创建数据的参数/系列。在这里您可以使用 dplyr包裹:
mynewdata2 <- mynewdata %>%
  # we change the key to name to have the label in the legend
  group_by(name = key) %>%  
  # the data in this case is simple, is just .$value column
  do(data = .$value) 

该数据框将包含两列,第二列将包含每行的十个值。

现在您需要一个列表中的这些信息。所以我们需要使用 list.parse3 来解析list.parse2 的安装因为保留名称,如 namedata .
series <- list.parse3(mynewdata2)

所以最后改变:
hc_series(list(name="A",data=mydata$A),
    list(name="B",data=mydata$B),
    list(name="C",data=mydata$C))

经过:
hc_add_series_list(series)

希望这很清楚。

关于r - Highcharter R 堆积条形图中的多个系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093229/

相关文章:

r - 绘制带孔的 "donut"多边形

linux - 使用 Linux Mint 运行 R

r - 自 Xcode 命令行工具更新以来无法安装 stringi

javascript - HighCharts 图案填充条纹

删除 R 中调用 linux 命令的目录

javascript - 分组堆叠 Highcharts 图中整个堆栈的工具提示

javascript - 使用 json 的 Highcharts 动态向下钻取

JavaScript 方法以/分配的变量开头??非常困惑

javascript - 如何在 highcharts 数据系列中添加填充颜色

r - 使用 R 将包含在具有患者 ID 的行之一中的信息填充到数据帧中的 'NA' s