簡體   English   中英

AmCharts-使用dataprovider設置最大值軸

[英]AmCharts - set max value axis using dataprovider

我正在嘗試使用dataprovider設置最大值軸,因為我正在動態加載條形圖中的數據,因此我需要查看其中一個條上的“進度”,而不是應該視為總數的條。

我該如何實現?

我嘗試過:

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

但是沒有運氣。

任何建議都將不勝感激。

我已向AmCharts支持人員提交了票證,並獲得了以下反饋:

您可以在addInitHandler內部根據所擁有的數據在圖表初始化之前設置max。 這是一個簡單柱形圖的示例:

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來強制執行該值: https ://docs.amcharts.com/3/javascriptcharts/ValueAxis#strictMinMax

在addInitHandler中設置最小值的示例:

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

如果刷新數據或使用實時數據,則在對圖表進行動畫處理或驗證以顯示更新的數據之前,應重新計算最大值,如果要更改軸,請使用chart.valueAxes [0] .maximum =最大 其中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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM