在 R 中使用 hctreemap2 创建具有不同颜色的树形图

Sam*_*uel 5 treemap highcharts r-highcharter

我正在尝试使用 highcharter-package 在 R 中生成交互式树形图(顺便说一句,我喜欢这个包)。它应该看起来像这样(我什至不需要不同的级别)

https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/treemap-with-levels/

示例代码:

df <- data.frame(name = c("john", "jane", "herbert", "peter"),
                    bananas = c(10, 14, 6, 3))

hctreemap2(df, 
           group_vars = "name",
           size_var = "bananas")
Run Code Online (Sandbox Code Playgroud)

我不希望盒子有渐变颜色,而是不同的颜色,比如红色、黄色、绿色和蓝色。我对 highcharts-API 的理解越来越深入,并将其“翻译”为 R 代码,但这确实让我很困难。

我已经找到了解决方法,但我正在寻找更好的解决方案,因为 hc_add_series_treemap 已被弃用。

p <- treemap(df,
             index="name",
             vSize="bananas",
             type="index")

highchart() %>%
    hc_add_series_treemap(p, 
                          layoutAlgorithm = "squarified")
Run Code Online (Sandbox Code Playgroud)

所以感谢您的帮助:)

Sam*_*uel 5

在花了整个早上(我的工作需要这个)没有找到解决方案之后,终于在这里发布了这个问题,问完后仅 10 分钟,我自己找到了一个解决方案,尝试了刚刚在我的应用程序中弹出的东西头^^

所以事情是这样的:

hctreemap2(df, 
           group_vars = "name",
           size_var = "bananas") %>%
    hc_plotOptions(treemap = list(colorByPoint = TRUE)) %>%        #allows points in the same serie to have different colors
    hc_colors(c("#FFFF00", "#FF0000", "#0000FF", "#00AA00")) %>%   #with this we can set the colors, note: 1st color is given to first row in the data frame (not necessarily the biggest box)
    hc_colorAxis(dataClasses = color_classes(df$name)) %>%         #defines acc. to which variable, a box gets a distinct color
    hc_legend(enabled = FALSE)                                     #suppresses legend
Run Code Online (Sandbox Code Playgroud)

它给出了这个: 在此输入图像描述 我们需要 highcharter-package 的三个附加功能,但它工作得很好!