你可以用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-100k,100k-200k,200k-500k)。你可以自己设置颜色数组中的那些颜色,也可以通过其他方式。
你可以在这里的Highcharter官方网站上找到更多的例子。http:/jkunst.comhighcharterhighmaps.html。
这些都是指JavaScript,但你几乎可以在R中使用所有的属性:所有的Highcharts API属性你都可以在这里找到。https:/api.highcharts.comhighcharts 和更多的文档(包括colorAxis)你可以在这里找到。https:/www.highcharts.comdocsindex