Раскраска на основе плотности данных в R - PullRequest
0 голосов
/ 27 августа 2018

У меня есть фрейм данных, в каждой строке которого есть числовой столбец. Я хочу выделить разные цвета на основе этого столбца. Числа этого столбца варьируются от 1 до 152. Я использовал эту функцию:

colors <- function(df,sp) {
check<-colorRampPalette(c("green","red"))(152)
color <- c() 
for (i in 1:nrow(sp))
{
  color <-c(color, check[df$n[df$id==as.numeric(sp[i,]$ID)])
} 
return(color)
} 

Таким образом, цвет делится поровну на 152 фрагмента. Однако данные в этом столбце в основном небольшие (в основном 1), гистограмма выглядит следующим образом

enter image description here

Если я использовал этот код, цвет в основном зеленый и почти не виден красным.

Я использую эту функцию для изменения цвета линии в листовке:

leaflet() %>%
...
addPolylines(data = data,weight = '1', color=colors(nodes,data))

Так, как я могу изменить эту функцию, чтобы цвет мог быть равномерно распределен, чтобы он мог генерировать более красный цвет, а не в основном зеленый?

1 Ответ

0 голосов
/ 10 сентября 2018

Мы можем использовать функцию

colorQuantile

Из листовки библиотеки номер цвета . Он отображает непрерывные числовые данные с помощью функции квантилей.

colorQuantile(palette, domain, n = 4, probs = seq(0, 1, length.out = n
+ 1), na.color = "#808080", alpha = FALSE, reverse = FALSE,
right = FALSE)
...