同一张图中的两个饼图 - Highcharter

3

我试图复制此示例,在同一个highchart图表中显示两个饼图,但未成功。以下是示例代码。有人知道如何在highcharter中创建两个相同图表吗?

df = tibble(name = c("a","b","c"),
        a1 = c(10,12,11),
        a2 = c(22,23,22))
highchart() %>%
hc_chart(renderTo = "container", type = "pie") %>%
hc_add_series(df, hcaes(name, a1), size = 100, center = c(30,10)) %>%
hc_add_series(df, hcaes(name, a2), size = 100, center = c(10,30)) 

饼图不是最优的可视化方式,例如参考 Steph Few 的 piecharts。除非只有两个类别,并且在25%或50%左右进行比较,柱状图将更易读。 - Paul Rougieux
2个回答

2
一个可能的解决方案。
highcharter::hw_grid(
  hchart(df, type = "pie", mapping = hcaes(name, a1))
  ,
  hchart(df, type = "pie", mapping = hcaes(name, a2))
) %>% htmltools::browsable()

enter image description here


1

我最初认为它应该由上面你的代码中的center参数控制(正如你指出的那样,它没有起作用)。

一个解决方法是:

highchart() %>% 
hc_add_series(type = "pie", data = df, hcaes(name, a1),size = 100, name = "test1", center = c(0, 0)) %>%
hc_add_series(type = "pie", data = df, hcaes(name, a2),size = 100, name = "test2") %>%
hc_plotOptions(pie = list(center = c(700,450)))

虽然第一个饼图的center参数除了修复第一个饼图(改变c(0, 0)并没有实际改变饼图位置)之外没有任何作用,但你仍需要它。然后使用hc_plotOptions来控制第二个饼图的位置。


当我制作一个嵌套在甜甜圈图表中的饼图时,这对我很有用,就像这个例子:https://www.highcharts.com/demo/pie-donut - Mr.Rlover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接