2017-06-22 54 views
0

私は棒グラフにデータを動的にロードしているので、dataproviderを使用して最大値軸を設定しようとしています。 1つは合計であるはずです。AmCharts - dataproviderを使用して最大値軸を設定する

どうすればよいですか?

"valueAxes": [ 
       { 
        "id": "ValueAxis-1", 
        "stackType": "regular", 
        "maximum": myDataProviderAttribute 
       } 

しかし運:

私は」で試してみました。

どのような提案も非常に感謝しています。

+0

私はあなたのバーで、「動的にロードするデータ」のものをご使用方法わからないんだけどチャートがあります。 dataLoaderプラグインを使用している場合は、 'dataUpdated'イベントにリスナーを追加し、受け取ったデータに応じて最初の値軸の最大値を更新することができます。 AJAXを使用している場合は、応答を受け取った後でチャートを作成することができます。データの入手方法を共有することができれば、より良いアドバイスを提供することができます。 – Robbert

答えて

1

私はAmChartsサポートにチケットをsubmitedし、このフィードバックを持っている:

チャートは、あなたが持っているデータに基づいて初期化される前に、あなたはaddInitHandler内で、最大を設定することができます。ここで、単純なカラムチャートの例である:

AmCharts.addInitHandler(function(chart) { 

    // find data maximum: 
    var min = chart.dataProvider[0].visits; 
    for (var i in chart.dataProvider) { 
    if (chart.dataProvider[i].visits > max) { 
     max = chart.dataProvider[i].visits; 
    } 
    } 
    // set axes max based on value above: 
    chart.valueAxes[0].maximum = max + 100; 
    chart.valueAxes[0].strictMinMax = true; 
}); 

あなたが値を適用するために、上記のようstrictMinMaxを使用する必要があります。addInitHandler内部最小の設定 https://docs.amcharts.com/3/javascriptcharts/ValueAxis#strictMinMax

例:

https://codepen.io/team/amcharts/pen/b4be8cb4e3c073909860720e0909a876?editors=1010

データを更新するか、ライブデータを使用する場合は、グラフをアニメートまたは検証して更新データを表示する前に、最大値を再計算し、必要に応じて彼は軸を変更してからchart.valueAxes [0] .maximum = max; maxはデータ入力に基づいて計算するものです。ここで

は一例です:上記

function loop() { 
    var data = generateChartData(); 
    chart.valueAxes[0].maximum = max; 

    // refresh data: 
    chart.animateData(data, { 
     duration: 1000, 
     complete: function() { 
      setTimeout(loop, 2000); 
     } 
    }); 
} 

ラインは、この例で使用した:

https://codepen.io/team/amcharts/pen/d0d5d03cfdcc2cc256e28ec52ad8b95c/?editors=1010

関連する問題