d3.js - 使用大型数据集和 d3.scale.linear() 时,使 dc.js 中的条宽和间隙保持一致

标签 d3.js dc.js crossfilter

使用 dc.js 和较小的数据集创建条形图时,我可以使条形和间隙看起来非常一致。

当使用更大的数据集和 d3.scale.linear() 时,我无法让条形和间隙看起来像使用日期图表和 d3.time.scale() 时一样漂亮。

钢筋太薄或太厚而没有间隙 - http://neil-s.com/unison/crossfilter/test/Crossfilter.jpg

以下是上图中顶部条形图之一的一些示例代码:

var tempDim = xFilter.dimension(function(d) {return d.temp;}); 
var tempCount = tempDim.group().reduceCount(function(d) {return d.temp;}); 
var minTemp = tempDim.bottom(1)[0].temp;
var maxTemp = tempDim.top(1)[0].temp;   

tempBarChart    
        .width(375).height(157)         
        .dimension(tempDim) 
        .group(tempCount)       
        .x(d3.scale.linear().domain([minTemp, maxTemp]))    
        .centerBar(true)
        .elasticX(true)
        .gap(15) 
        .xUnits(function(){return 15;}) 
        .xAxis().ticks(6)

我已经尝试过间隙、xUnits 和刻度值,但没有运气。有什么建议?

最佳答案

不漂亮!

这是 dc.js 的一个已知错误。

https://github.com/dc-js/dc.js/issues/952

我认为它在 1.7 中的效果比在 2.0 开发分支中要好一些,但它仍然不完美。

我现在唯一能想到的解决方法是创建一个在事后调整宽度的renderlet。 :-(

关于d3.js - 使用大型数据集和 d3.scale.linear() 时,使 dc.js 中的条宽和间隙保持一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028363/

相关文章:

macos - d3.js 和破折号 : anyone tried and won?

javascript - 在 pre 标记内读取 jsFiddle 的 csv

javascript - 修改 d 3's force layout "退火“计划

d3.js - 如何将过滤结果添加到选择菜单

javascript - 在 crossfilter 的 reducio 中将自定义函数与预定义函数混合

javascript - dc.js 每个 sku 的平均值不正确

d3.js - DC.js Reductio - 显示 DC 日期范围内的累积平均值

javascript - dc.js 百分比直方图 - 组的大小

javascript - 将工具提示添加到使用 svg 路径生成的条形图

javascript - dc.js 数字显示小部件