在Billboard.js

时间:2018-02-23 15:10:13

标签: javascript d3.js charts billboard.js

在Billboard.js中生成一个图表,可以为Y轴引入自定义值作为最小值和最大值。

我遇到的问题是,当修改值时,即使轴正在改变,它们也不会非常接近引入的值。

例如此屏幕截图:

enter image description here

在最大值上,我认为这不是一个大问题。但至少是一个。默认值为0,在引入300之后,我希望从更接近的值开始,而不是之前的0。在更改后,Y轴只移动了几个像素。

html代码:

<input type="number" ng-change="$ctrl.updateY('max')" ng-model="$ctrl.max">

JS代码:

updateY(val) {
    if(val=== 'max') {
        if(this.max || this.max === 0) {
            this.maxValue = this.max;
        }
    } else {
        if(this.min || this.min === 0) {
            this.minValue = this.min;
        }
    }
    const maxNumber = Number(this.maxValue);
    const minNumber = Number(this.minValue);
    this.lineView.chart.axis.range({max: {y: maxNumber}, min: {y: minNumber}});
    this.resetY = false;
}

这是max的代码,min的代码。

我认为问题可能来自range,它不会生成带有引入值的Y轴。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果在bb.generate中添加了填充,它会更接近引入的值:

const chart = bb.generate({
...
"axis": {
...
"y": {
...
        "padding" : {
        top: 0,
        bottom: 10
        }

...