gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:38:43 25 4
gpt4 key购买 nike

在浏览了 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com