2015-09-23 30 views
2

在指定颜色的小册子色阶中,您可以使用此功能。 http://leafletjs.com/examples/choropleth.html小册子中的色彩连续颜色

function getColor(d) { 
return d > 1000 ? '#800026' : 
     d > 500 ? '#BD0026' : 
     d > 200 ? '#E31A1C' : 
     d > 100 ? '#FC4E2A' : 
     d > 50 ? '#FD8D3C' : 
     d > 20 ? '#FEB24C' : 
     d > 10 ? '#FED976' : 
        '#FFEDA0'; 
} 

相反的颜色特定减免是有办法,我可以只提供最小值和最大值,让颜色定义自己?

我有几个尺度,并且为每个尺度定义一个离散尺度是不可能的。

任何关于使用Chroma.JS https://github.com/gka/chroma.js的建议吗?

+0

你是什么意思“让颜色* [原文如此] *自己定义”?你不想指定任何十六进制代码? – musefan

+0

我只是希望颜色中的断点取决于数据,我不必指定断点。此时该功能具有不连续的颜色。有没有办法让它在不同的范围内连续? – user2961712

+0

所以你的意思是范围可能会从2000 - 5000例如,你仍然想要8种不同的颜色?但是,您无需指定确切的范围,因为您将定义图例/键 – musefan

回答

0

任何关于使用Chroma.JS https://github.com/gka/chroma.js的建议吗?

是的,你会使用chroma.js。 usage documentation for chroma有定义和使用色阶的例子。

的例子是:

chroma.scale(['lightyellow', 'navy']).domain([1, 100000], 7, 'log'); 

你的代码是

function getColor(d) { 
return d > 1000 ? '#800026' : 
     d > 500 ? '#BD0026' : 
     d > 200 ? '#E31A1C' : 
     d > 100 ? '#FC4E2A' : 
     d > 50 ? '#FD8D3C' : 
     d > 20 ? '#FEB24C' : 
     d > 10 ? '#FED976' : 
        '#FFEDA0'; 
} 

所以,你的思维过程是“规模范围从1到100000,从浅黄色到海军改变颜色是什么我的代码你看你的代码,看它的范围是从0到1000(或1000以上)的范围从FFEDA0到800026.

所以你替换数字和颜色:

chroma.scale(['#FFEDA0', '#800026']).domain([0, 1000]); 

然后使用它:添加一个var getColor =,以便您将此比例保存为您的比例函数。

+1

关于如何使用它的任何建议?我已经发布了我的当前函数来获取我的问题的颜色。但我无法转换为色度 – user2961712