D3.js 条形图列分组太紧
我有一个条形图(按尚未完成进行堆叠),所有列都分组到图表的左侧。 这是什么原因造成的 Plnkr: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[键]
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"