![](/img/trans.png)
[英]How to set the initialValue of the trendLine as the max value of Value Axis in AmCharts?
[英]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.