時刻を更新するときは、新しい日付インスタンスまたは別の値を設定する必要があります。 startDate
変数を更新すると、その日付オブジェクトを共有するすべてのデータポイントが更新され、AmChartsはdataProvider内の日付オブジェクトを複製しません。簡単な修正は、例えば、呼び出しsetMinutesからのミリ秒単位のタイムスタンプの結果を使用することです:
var newDate = startDate.setMinutes(startDate.getMinutes() + 10);
var visits = randomIntFromInterval(50, 100);
chartData.push({
date: newDate,
visits: visits
});
AmCharts内部で新しいDateオブジェクトにミリ秒の値を変換します。これは、生成メソッドと更新メソッドに適用する必要があります。
minPeriod
は、データポイント間の最小間隔に設定する必要があります。 10分単位でデータを追加しているので、"mm"
,は"hh"
ではありません。デフォルトでは
は、categoryAxis
はminimumDate
とmaximumDate
の設定をサポートしていません、しかし、あなたはこの機能を追加するAmCharts' datePadding pluginを使用することができます。
<script src="//www.amcharts.com/lib/3/plugins/tools/datePadding/datePadding.min.js"></script>
を、グラフを更新した後、あなたの日付範囲を維持するためには、あなたが呼び出す必要があります:このプラグインは、あなたのAmCharts後に次のスクリプトタグを追加する際に含まれ、あなたのcategoryAxis
にminimumDate
とmaximumDate
プロパティを設定することができますプラグインのAmCharts.datePaddingProcess
メソッドを使用して、グラフを再描画する前に範囲を再更新します。
はここにあなたのupdateChart方法はdatePaddingプラグインを使用した後にどのように見えるかです:
function updateChart() {
var newDate = startDate.setMinutes(startDate.getMinutes() + 10);
var visits = randomIntFromInterval(50, 100);
chart.dataProvider.push({
date:newDate,
visits:visits
});
AmCharts.datePaddingProcess(chart, true);
chart.validateData();
}
そしてここでは、あなたれるCategoryAxisがどのように見えるかです:
"categoryAxis": {
"parseDates": true,
"gridAlpha": 0.15,
"axisColor": "#DADADA",
"minPeriod" : "mm",
"minimumDate": min,
"maximumDate": max
},
Updated fiddle
@xorsparkこんにちは、ありがとうあなたは非常に!これは私のために働いた:)(y) –