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

时间:2019-02-28 10:38:25

标签: highcharts treemap r-highcharter

我正在尝试使用highcharter-package(我喜欢btw包)在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")

我不希望这些盒子具有渐变颜色,但是要有区别,例如红色,黄色,绿色和蓝色。 我在了解highcharts-API并将其“翻译”为R-Code方面越来越好,但这确实给我带来了困难。

我已经找到了一个工作环境,但是我正在寻找更好的解决方案,因为不建议使用hc_add_series_treemap。

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

highchart() %>%
    hc_add_series_treemap(p, 
                          layoutAlgorithm = "squarified")

因此,感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

度过了整个上午(我需要在工作中解决这个问题)之后,没有找到解决方案,直到最后在这里提出问题后,才问了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

它给出了: enter image description here 我们需要highcharter-package的三个附加功能,但效果很好!