Highstockチャート ライブラリを使用して、Highstock 範囲セレクターを使用してカスタム YTD オプションを表示する方法はありますか?
現在、範囲セレクターで「ytd」のタイプを使用すると、デフォルトで暦年が使用されます。私のユースケースでは (金融機関の場合も考えていたでしょう)、4 月 1 日から 3 月 31 日までのデータを「ytd」オプションとして表示する必要があります。
ソースをハッキングしないと、おそらく不可能です。Highstock で見つけてください。
else if (type === 'ytd') {
now = new Date(dataMax);
year = now.getFullYear();
newMin = rangeMin = mathMax(dataMin || 0, Date.UTC(year, 0, 1));
now = now.getTime();
newMax = mathMin(dataMax || now, now);
}
ご覧のとおり、日付はハードコーディングされています。必要に応じて変更できます。
これが私がやった方法です。以前の Financial YTD を見ることには対応していません (これは、私が必要とする一般的な使用例です) が、それを行うために何かをハックできると確信しています。
JSFiddleここ
$(function() {
var startDate = new Date("April 01, 2012 00:00:00");
var today = new Date();
var count = parseInt((today.getTime() - startDate)/(24*3600*1000)) -1;
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function(data) {
// Create the chart
window.chart = new Highcharts.StockChart({
chart : {
renderTo : 'container'
},
rangeSelector : {
selected: 1,
buttonTheme: {
width:100
},
buttons: [{
type: 'ytd',
count: 1,
text: 'Calendar YTD'
},
{
type: 'day',
count: count,
text: 'Financial YTD'
}]
},
title : {
text : 'AAPL Stock Price'
},
series : [{
name : 'AAPL',
data : data,
tooltip: {
valueDecimals: 2
}
}]
} );
});
});