我正在嘗試使用DyGraphs來繪製股票數據。它在繪製和縮放數據方面做得很完美。但由於股票沒有在假期交易,我在數據上存在空白。我不希望星期六和星期日在X軸上顯示。我希望在Google財經上有這樣的圖表,其中X軸跳過星期六和星期日(沒有數據的日期)。那可能嗎?如果我使用繪圖儀選項,可以實現這個結果嗎?如何在Dygraps x軸上跳過週末。
p.s.我不介意圖表是否縮放到小時或分鐘級別。
我正在嘗試使用DyGraphs來繪製股票數據。它在繪製和縮放數據方面做得很完美。但由於股票沒有在假期交易,我在數據上存在空白。我不希望星期六和星期日在X軸上顯示。我希望在Google財經上有這樣的圖表,其中X軸跳過星期六和星期日(沒有數據的日期)。那可能嗎?如果我使用繪圖儀選項,可以實現這個結果嗎?如何在Dygraps x軸上跳過週末。
p.s.我不介意圖表是否縮放到小時或分鐘級別。
我一直認爲,也許我們可以從Dygraphs中抽象出足夠多的軸,使其不僅僅是線性與對數的定義,而是問題在於它很容易變得低效。 Dygraphs速度很快,有時候我們會保留這些功能來保持它。但任何想法都會受到歡迎。
這是幾年後,但我有一個簡單的解決方案。
下面是我用的數據:https://pastebin.com/kbT6gY2u
它被格式化爲顯示爲燭臺(日期,打開,關閉,高,低),因爲我用在這裏找到繪圖儀:http://dygraphs.com/tests/plotters.html但是我的解決方案將與合作默認繪圖儀。
的原理是這樣的:
代碼示例轉換爲日期(使用代碼清晰underscore.js和moment.js)
var dateIndex = [];
var data = _.map(data, function(line, n) {
dateIndex.push(line[0]); // Save the date to the array
line[0] = dateIndex.length-1; // Replace the date by the index of the date in the array
return line;
});
var g = new Dygraph(element, data, {
axes: {
x: {
valueFormatter: function (val, opts, series_name, dygraph) {
// val is the date, which we have rewritten to the array's index.
// So here we can exchange it back for the actual date, and format it
return moment(dateIndex[val]).format("dddd, MMM Do YYYY, h:mm a");
},
axisLabelFormatter: function (val, granularity, opts, dygraph) {
return moment(dateIndex[val]).format("MMM DD");
}
}
}
});
不錯! +1(分鐘字符是堆棧上的波洛尼) – NimChimpsky
這將是很難 - dygraphs僅支持線性x軸,所以你唯一的希望就是讓你的X座標「市場開放分鐘「,即某事,例如包括市場未開放的時候。然後您必須使用axisLabelFormatter,valueFormatter和可能的ticker將它們轉換回日期。 – danvk
感謝您的回覆。我希望我可能錯過了一些可以實現魔法的選項。現在,我將使用數字軸,並在相應的div中在圖表上顯示相應的日期。如果我能成功地在不破壞整個事情的情況下正確地更改代碼,就會在這裏更新。 –