Изменение цвета оси в Highchart Choropleth

Я новичок в визуализации карт на R и пытаюсь изменить легенды в хороплете движения.
Мой код соответствует

ds <- a21 %>% 
  group_by(fips) %>% 
  do(item = list(
    fips = first(.$fips),
    sequence = .$freq,
    value = first(.$freq))) %>% 
  .$item

hc <- highchart(type = "map") %>% 
  hc_add_series(data = ds,
                name = "complaints",
                mapData = uscountygeojson,
                joinBy = "fips",
                borderWidth = 0.01) %>% 
  hc_colorAxis(stops = color_stops()) %>%  
  hc_title(text = "patient complaints") %>% 
  hc_legend(layout = "vertical", reversed = TRUE,
            floating = TRUE, align = "right") %>% 
  hc_add_theme(hc_theme_smpl()) %>% 
  hc_motion(
    enabled = TRUE,
    axisLabel = "year",
    labels = sort(unique(a21$year)),
    series = 0,
    updateIterval = 50,
    magnet = list(
      round = "floor",
      step = 0.1
    )
  )

Скриншот существующего результата:

введите здесь описание изображения

На данный момент я вижу, что R автоматически создает цветовую шкалу частот.

Я хочу изменить это на набор пользовательских значений в моем кадре данных.

Фрагмент моего фрейма данных, как показано ниже

a21:

      year  fips   freq            q
1     2004  1001      3 1st Quantile
2     2005  1001      0 1st Quantile
3     2006  1001      4 1st Quantile
4     2007  1001      0 1st Quantile
5     2008  1001      0 1st Quantile
6     2009  1001      0 1st Quantile

Я хочу столбец q как метки цветовой оси


person Dee V    schedule 25.05.2017    source источник


Ответы (1)


Я думаю, вам нужно связать столбец q с цветом (возможно, как еще один столбец в кадре данных), а затем использовать эти цвета в сочетании с функцией color_stops.

Например:

library(dplyr)
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)))

colors <- c("red", "blue", "green" , "yellow")

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 = "blue", maxColor = "red", 
  stops = color_stops(n=length(colors), colors = colors))
person syork    schedule 06.06.2017