【发布时间】:2017-12-08 17:08:20
【问题描述】:
我正在使用 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函数设置。第一种方法更可取,因为它需要更少的代码。有没有办法做到这一点?
【问题讨论】:
标签: d3.js billboard.js