当使用大型数据集和d3.scale.linear()时,在dc.js中使条形宽度和间隙保持一致。

问题描述 投票:5回答:1

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

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

这些条形图要么太细,要么太粗,没有间隙------。http:/neil-s.comunisoncrossfiltertestCrossfilter.jpg。

下面是我上面的图片中的一个顶部柱状图的一些示例代码,我试验了间隙、xUnits和ticks值,但没有成功。

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)

我试验了间隙,x单位和ticks的值,但没有成功。有什么建议吗?

d3.js dc.js crossfilter
1个回答
2
投票

不漂亮

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

https:/github.comdc-jsdc.jsissues952

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

目前我唯一能想到的解决方法是创建一个渲染小程序,在事后调整宽度。 :-(

© www.soinside.com 2019 - 2024. All rights reserved.