基于 R 中数据密度的着色
Coloring based on data density in R
我有一个数据框,其中每一行都有一个数字列。我想根据这一列分配不同的颜色。这一列的数字范围是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)
}
所以颜色被平均分为152pieces.However,这一列的数据大多很小(大部分都是1),柱状图是这样的
如果我使用此代码,颜色主要是绿色,几乎看不到红色。
我正在使用此功能来更改传单中的线条颜色:
leaflet() %>%
...
addPolylines(data = data,weight = '1', color=colors(nodes,data))
那么我该如何改变这个函数来使颜色均匀分布,这样它就可以生成更多类似红色的颜色,而不是主要是绿色?
我们可以使用函数
colorQuantile
来自图书馆传单colorNumeric。它通过分位数函数映射连续数值数据。
colorQuantile(palette, domain, n = 4, probs = seq(0, 1, length.out = n
+ 1), na.color = "#808080", alpha = FALSE, reverse = FALSE,
right = FALSE)
我有一个数据框,其中每一行都有一个数字列。我想根据这一列分配不同的颜色。这一列的数字范围是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)
}
所以颜色被平均分为152pieces.However,这一列的数据大多很小(大部分都是1),柱状图是这样的
如果我使用此代码,颜色主要是绿色,几乎看不到红色。
我正在使用此功能来更改传单中的线条颜色:
leaflet() %>%
...
addPolylines(data = data,weight = '1', color=colors(nodes,data))
那么我该如何改变这个函数来使颜色均匀分布,这样它就可以生成更多类似红色的颜色,而不是主要是绿色?
我们可以使用函数
colorQuantile
来自图书馆传单colorNumeric。它通过分位数函数映射连续数值数据。
colorQuantile(palette, domain, n = 4, probs = seq(0, 1, length.out = n
+ 1), na.color = "#808080", alpha = FALSE, reverse = FALSE,
right = FALSE)