我正在使用交叉过滤器将各种数据列表绘制成直方图。一些项目的值比其他项目高很多,我热衷于以对数方式绘制直方图。
在调用 reduceSum 后,有没有办法可以将所有总和的项目计数转换为对数值?我很想添加类似的东西
Math.log(d.count) / Math.LN10;
进入以下:
var crossfiltered_data = crossfilter(data),
all = crossfiltered_data.groupAll(),
item_labels = crossfiltered_data.dimension(function(d) { return d.name; }),
items_group = hour.group().reduceSum(function(d) {
return d.count
}),
charts = [
barChart(on_range_change)
.dimension(item_labels)
.group(items_group)
.x(d3.scale.linear()
.domain([domain_start, domain_end])
.rangeRound([0, 240])),
],
chart = d3.selectAll(target)
.data(charts)
.each(function(chart) {
chart .on("brush", renderAll)
.on("brushend", renderAll);
}),
render = function(method) {
d3.select(this).call(method);
},
renderAll = function(event) {
chart.each(render);
};