Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js 条形图列分组太紧_D3.js - Fatal编程技术网

D3.js 条形图列分组太紧

D3.js 条形图列分组太紧,d3.js,D3.js,我有一个条形图(按尚未完成进行堆叠),所有列都分组到图表的左侧。 这是什么原因造成的 Plnkr: data.forEach(函数(d){ var y0_正=0; var y0_负值=0; d、 组件=键。映射(函数(键){ 如果(d[键]>=0){ //如果我们有一个正值,则添加到正值 返回{key:key,y1:y0_正,y0:y0_正+=d[key]}; }如果(d[键]

我有一个条形图(按尚未完成进行堆叠),所有列都分组到图表的左侧。 这是什么原因造成的

Plnkr:

data.forEach(函数(d){
var y0_正=0;
var y0_负值=0;
d、 组件=键。映射(函数(键){
如果(d[键]>=0){
//如果我们有一个正值,则添加到正值
返回{key:key,y1:y0_正,y0:y0_正+=d[key]};
}如果(d[键]<0),则为else{
//如果值为负值,则将其添加到负值
返回{key:key,y0:y0_negative,y1:y0_negative+=d[key]};
}
})
})
Kev

你的图表绝对没有问题。这是正确的,数据显示准确

我知道这似乎是相反的,但这就是原因:你使用的是时间尺度,而时间尺度不是顺序尺度

让我们看看你的约会。第一个数据点是:

"date":"2016-11-03 00:00:00"
对应于11月3日。但所有其他数据点均来自10月6日的2016-10-06

因此,时间刻度将显示这两个极端之间的所有日期(从10月6日到11月3日)均匀分布,并且在10月6日,您的所有酒吧将被挤压到左边(除了右边的一个小酒吧,对应于11月3日),因为这是正确的和预期的结果,当你使用一个时间尺度

现在,看看如果我们简单地删除数据中的第一个对象(11月3日)会发生什么:

如果不想以正确的比例显示时间跨度,请改用顺序刻度,如
scaleOrdinal
scaleBand

"date":"2016-11-03 00:00:00"