【发布时间】:2017-11-03 22:47:09
【问题描述】:
我第一次尝试使用 billboard.js 制作一些图表,但遇到了一个似乎不容易表示的案例。我想在一个图表中显示一段时间内多个项目的二进制(开/关)状态。预计开启和关闭时段将持续相当长的时间,因此我希望使用时间的 x 轴和 y 轴的类别来显示这一点,当项目打开时,有一条线从左到右运行,而当项目打开时没有线它已关闭。
我已经尝试了一些使用 billboard.js 中现有图表类型的实现,我似乎能得到的最接近的是带有重叠点的散点图以创建“线”。这还需要操作“on”值以允许在图表上显示多条线(因此它们不会全部重叠在 1 值上) 下面的代码显示了该设置以及“on”的数据操作方式或者需要 1 个值才能在每个图表中显示多个项目。
bb.generate({
bindto: "#chart",
data: {
columns: [
["item1", 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0],
["item2", 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0]
],
type: 'scatter',
colors: {
data1: "red",
data2: "green"
},
},
axis: {
y: {
min: 1,
max: 2,
tick: {
values: [1,2],
},
},
},
point: {
r: 10,
focus: {
expand: {
enabled: false,
}
}
},
tooltip: {
show: false,
},
});
(https://codepen.io/CodeRequiem/pen/rYeejz)
我正在考虑直接改用 D3,但想知道是否有人对在 billboard.js 中处理此问题的更好方法有任何建议。另一个问题是如何将 y 轴值显示为 item1 和 item2 而不是 1 和 2。
【问题讨论】:
标签: javascript d3.js charts