我有一个条形图(由尚未完成堆叠),并且所有列都分组到图表的左侧。 造成这种情况的原因是什么?
Plnkr:https://plnkr.co/edit/DMRJfbD4ZF3xCiPdFedy?p=preview
data.forEach(function(d) {
var y0_positive = 0;
var y0_negative = 0;
d.components = keys.map(function(key) {
if (d[key] >= 0) {
// if we have a positive value, add to the postive
return {key: key, y1: y0_positive, y0: y0_positive += d[key] };
} else if (d[key] < 0) {
// if value is negative, add to the negative value
return {key: key, y0: y0_negative, y1: y0_negative += d[key] };
}
})
})
千电子伏
答案 0 :(得分:1)
您的图表确实存在 nothing 错误。这是正确的,数据正在准确显示。
我知道这似乎相反,但这就是原因:你使用的是时间刻度,时间刻度不是一个序数刻度。
让我们看看你的约会对象。第一个数据点是:
"date":"2016-11-03 00:00:00"
对应11月3日。但所有其他数据点都来自2016-10-06
,即10月6日。
因此,时间刻度将显示这两个极端之间的所有日期(10月6日至11月3日)均匀间隔,并且所有条形图将在10月6日左侧挤压(除了右侧的小栏,对应于11月3日),因为当您使用时间刻度时,这是正确的预期结果!
现在,看看如果我们只是删除数据中的第一个对象(11月3日)会发生什么:https://plnkr.co/edit/rhmh2zxEnwO4SLTLvfNu?p=preview
如果您不想以正确的比例显示时间跨度,请改用序号,例如scaleOrdinal
或scaleBand
。