减少billboard.js图表​​中的滴答数量

时间:2017-12-08 17:08:21

标签: d3.js billboard.js

我正在使用billboard.js创建小图表,并希望减少垂直轴上的刻度数,以使图表更具可读性。这可以通过设置tick count来实现,但这会强制确切的滴答数,而不是动态选择接近但不完全等于您选择的数字,以便刻度标签看起来很漂亮。例如,请参阅此jsfiddle演示一组非最佳刻度标签:

var chart = bb.generate({
    bindto: "#chart",
    data: {
        type: "bar",
        columns: [
            ["data1", 30, 200, 100, 170, 150, 250],
            ["data2", 130, 100, 140, 35, 110, 50]
        ]
    },
    size: {
        width: 150,
      height: 150
    },
    legend: {
        show: false
    },
    axis: {
        y: {
        tick: {
            count: 5
        }
      }
    }
});

我可以想象两种方法来解决这个问题。首先,绘制图表后,调用内部d3轴对象(chart.internal层次结构下的某个位置)以更智能的方式更改刻度。其次,提取数据范围,创建d3轴和缩放对象,用于计算刻度数,然后使用billboard.js函数设置。第一种方法是优选的,因为它需要更少的代码。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以处理tick.values

,而不是设置滴答计数
axis: {
    y: {
        tick: {
            values: [50,100,150,200,250]
        }
    }
}

enter image description here