d3.hexbin插件-动态定义颜色域以适应数据
d3.hexbin plugin - dynamically define colour domain to suit data
我正在使用d3.hexbin插件开发一个六边形Binning页面(http://bl.ocks.org/mbostock/4248145)。
我已经设法使用数据中的最小值和最大值动态定义了轴的域。
然而,我想基于点变量动态生成bin颜色域。
示例箱根据以下代码着色:
var color = d3.scale.linear()
.domain([0, 20])
.range(["white", "steelblue"])
.interpolate(d3.interpolateLab);
颜色范围被映射到0到20之间的值。对于大型数据集,通常有超过20个点的六边形箱,并且图表是"饱和的"。
颜色域值[0,20]是否可以根据数据动态生成?有可能以某种方式从hexbin对象中获得分配给bin的最大和最小点数吗?
感谢你的帮助,因为我对JavaScript不太感兴趣。
我会尝试这个hexbin示例中使用的方法:http://projects.delimited.io/experiments/hexbins/starbucks.html
也就是说,将域定义为均值&料仓尺寸的标准偏差。将其翻译回最初的Mike Bostock示例:
-
创建一个所有仓位大小的数组:
var bins = hexbin(points); var counts = []; bins.map(function (elem) { counts.push(elem.length) });
-
基于
counts
阵列设置颜色域:color.domain([0, (ss.mean(counts) + (ss.standard_deviation(counts) * 3))]);
在本例中,ss是simple_statistics.js库,但您也可以轻松地滚动自己的库,或者将域最大值设置为counts
中的最高值,如下所示:
color.domain([0, d3.max(counts)]);
下面是一个动态计算颜色域的工作小提琴:http://jsfiddle.net/henbox/3jecfdfu/2/
相关文章:
- d3.hexbin插件-动态定义颜色域以适应数据
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- 使用角度图时,我可以用函数定义数据点颜色吗
- 数据表 ..如何根据表格的单元格值更改单元格的颜色
- 如何更改数据表行颜色
- 用不同颜色填充的Highchart数据系列
- 基于数据比较的动态列颜色突出显示
- 通过 sql 数据绘制高图表柱形图颜色
- HTML/CSS/JavaScript:如何根据数据更改表格行的颜色
- 通过传单中来自 csv 的数据定义 json 多边形的颜色
- 更改数据表的背景颜色
- C3js 行数据,自定义颜色
- 更改同一系列数据中的数据的条形颜色
- 根据高图表中的列值更改数据标签颜色、旋转和对齐值
- 根据数据类型动态为Highcharts中的特定数据分配颜色
- 如何填充谷歌地图数据图层的颜色
- 按日期更改 PHP 数据表中的行颜色
- 点的颜色在 D3.js散点图上的 10 个数据集后重复
- 如何组合两个单独的Uint8Array的颜色数据(JPEG)和透明度数据(PNG)
- 像老板一样根据数据在 D3 中设置颜色