Вы можете сделать это с помощью вспомогательной функции, встроенной в HighChater:
library(tidyverse)
library(viridis)
library(highcharter)
mapdata <- get_data_from_map(download_map_data("countries/us/us-all"))
set.seed(1234)
data_fake <- mapdata %>%
select(code = `hc-a2`) %>%
mutate(value = 1e5 * abs(rt(nrow(.), df = 10)))
color_classes(c(0, 100000, 200000, 500000))
hcmap("countries/us/us-all", data = data_fake, value = "value",
joinBy = c("hc-a2", "code"), name = "Fake data",
dataLabels = list(enabled = TRUE, format = '{point.name}'),
borderColor = "#FAFAFA", borderWidth = 0.1,
tooltip = list(valueDecimals = 2, valuePrefix = "$", valueSuffix = " USD")
) %>%
hc_colorAxis(
minColor = "gray",
maxColor = "yellow",
dataClasses = color_classes(c(0, 100000, 200000, 500000))
)
Важной частью является список color_classes
. В этом примере у меня сделано 3 сегмента (0–100 тыс., 100–200 тыс. И 200–500 тыс.). Вы можете установить сами цвета для цветов в массиве цветов или каким-либо другим способом.