Создание Treemap с разными цветами с использованием hctreemap2 в R - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать интерактивную древовидную карту в R, используя пакет highcharter (мне нравится пакет кстати).Это будет выглядеть так (мне даже не нужны разные уровни)

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")

Я не хочу коробкииметь градиентные цвета, но разные, скажем, красный, желтый, зеленый и синий.Я стал лучше понимать API-интерфейсы highcharts и «переводить» его на 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 голосов
/ 28 февраля 2019

Проведя все утро (мне нужно это на моей работе), не найдя решения, до конца, наконец, разместив этот вопрос здесь, всего через 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,но это работает довольно хорошо!

...