【发布时间】:2018-08-27 13:49:13
【问题描述】:
我有一个数据框,其中每一行都有一个数字列。我想根据这个列分配不同的颜色。此列的数字范围为 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),直方图是这样的
如果我使用这个代码,颜色大多是绿色的,几乎看不到红色。
我正在使用此功能更改传单中的线条颜色:
leaflet() %>%
...
addPolylines(data = data,weight = '1', color=colors(nodes,data))
那么我怎样才能改变这个功能,使颜色分布均匀,从而产生更多的红色,而不是绿色呢?
【问题讨论】:
-
您可以使用对数来缩放值。
-
如果你愿意使用ggplot。这个答案可能会对您有所帮助:stackoverflow.com/a/46389490/3243875
-
@MonteCarlo 实际上我正在使用它来进行传单可视化,所以我无法重新缩放,对数据进行排序。我已经更新了帖子,你还有什么想法吗?