我扩展Chart.types.Line
并将比例覆盖为某个常量值。
我现在需要 - 用
显示点数y > scale.max
位于scale.max
位置y < scale.min
位于scale.min
位置用户与他们互动的能力。
标题应该是正确的(未修改的)值,因此我不能只修改数据集。
我怎样才能做到这一点?
简化代码:
function ChartFactory(title) {
Chart.types.Line.extend({
name: title,
buildScale: function() {
this.options.scaleOverride = true;
this.options.scaleSteps = 10;
this.options.scaleStepWidth = this.options.S;
this.options.scaleStartValue = this.options.target - 5 * this.options.S;
Chart.types.Line.prototype.buildScale.apply(this, arguments);
},
draw: function () {
var chart = this;
Chart.types.Line.prototype.draw.apply(chart, arguments);
// some additional graphic here
}
});
}
答案 0 :(得分:1)
只需在buildScale
...
var scale = this.scale;
var originalCalculateY = scale.calculateY;
scale.calculateY = function(y) {
if (y > scale.max)
return originalCalculateY.apply(this, [scale.max]);
else if (y < scale.min)
return originalCalculateY.apply(this, [scale.min]);
else
return originalCalculateY.apply(this, [y]);
}
...
因为你仍然有轴标签会有点混乱。