我試圖用billboard.js首次製作一些圖表,並且遇到了一個似乎並不容易表示的情況。我想在一段時間內在一個圖表中顯示多個項目的二進制(開/關)狀態。開關期間預計會持續一段合理的時間,所以我希望能夠使用x軸的時間和y軸的類別來顯示這些信息,其中一行顯示從左到右的項目開啓時的行數,而沒有行時的行數它已關閉。在billboard.js中爲多件設備構建一個二進制狀態圖
我已經嘗試了一些在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
這並沒有直接回答我的問題,因爲我的目標是將多個開/關狀態放在同一個「圖表」上,但在單獨的行上,而不用修改默認的0或1值中的數據。它看起來像我可以使用你的答案的部分來解決我的問題,通過使用axis.y.format來更改刻度值,並通過使用投影來移動系列元素的位置,因爲我希望。我會在通過此後發佈另一條評論。 – CodeRequiem
這將有助於實現我上一次評論中描述的目標。標記爲答案。 – CodeRequiem
如果您需要更多幫助,使用圖像描述將更加清晰地瞭解您的需求。無論如何,希望答案有幫助:) –