圆环图-将域映射到颜色范围(过渡)
Donut Chart - map domain to range of colors (transition)
我正在尝试制作一个"甜甜圈"图,目前我正在努力制作D3比例和颜色。如果打开我当前的图表:https://jsfiddle.net/dtr7hrg2/,您会注意到值0和5.26共享完全相同的颜色。我想这是因为这两个值在同一范围内。我的域是[0100]。我想要实现的是将该域映射到范围[0100]中,该范围对应于以下颜色["#000000", "#5F192A", "#B12848", "#EC335C"]
之间的线性过渡,其中0.0落入#000
,100.0落入#B12848
。有人能告诉我我做错了什么吗?任何帮助都将不胜感激!
如果您想要#000000
和#B12848
之间的线性颜色范围,您可以创建一个插值函数并将其输入缩放到0.0和1.0之间:
var chart = d3.select("#chart");
var color = d3.interpolate('#000000', '#B12848');
for (var i = 0; i <= 100; i++) {
chart.append('span').attr('class', 'colorBlock').attr('style', function (d) {
return 'background-color: ' + color(i / 100.0);
});
}
这是一把工作小提琴
但是,正如Tim B所指出的,0到5之间的颜色几乎无法辨别。
它不是完全相同的颜色,您所做的是正确的
console.log(heat_map_color(5)) // rgb(14, 4, 6)
console.log(heat_map_color(0)) // rgb(0, 0, 0)
那些颜色太近了,你看不出有什么区别。
相关文章:
- 正在全局范围中查找JavaScript函数
- 如何通过数组更新角度子范围
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- HTML范围:动态设置值属性
- "实例范围”;TypeScript类的getter/setter
- jquery日期选择器年份范围默认值
- Jpgraph:如何手动设置X轴和Y轴的范围
- 在对象数组中查找多个值的d3范围
- 动态加载angularjs并生成控制器和范围
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 在Materialize Calendar中设置年份范围
- 在MVVM视图模型中处理应用程序范围的元素
- setInterval游戏循环的范围问题
- AngularJS获取范围中的选定项目
- 从指定范围创建字符数组
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- ngDialog-弹出窗口未更新范围变量
- 如何使用D3生成特定范围内的随机颜色
- 圆环图-将域映射到颜色范围(过渡)