Javascript AmCharts-使用数据提供程序设置最大值轴
我正在尝试使用dataprovider设置最大值轴,因为我在条形图中动态加载数据,所以我需要查看其中一个条形图上的进度,并将其与假定为总进度的条形图进行比较 我如何做到这一点 我试过:Javascript AmCharts-使用数据提供程序设置最大值轴,javascript,amcharts,Javascript,Amcharts,我正在尝试使用dataprovider设置最大值轴,因为我在条形图中动态加载数据,所以我需要查看其中一个条形图上的进度,并将其与假定为总进度的条形图进行比较 我如何做到这一点 我试过: "valueAxes": [ { "id": "ValueAxis-1", "stackType": "regular", "maximum": myDataPr
"valueAxes": [
{
"id": "ValueAxis-1",
"stackType": "regular",
"maximum": myDataProviderAttribute
}
但是没有运气
任何建议都将非常感谢。我已向AMSCHARTS支持部门提交了一份通知单,并获得以下反馈: 可以根据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内部最小值的示例:
如果刷新数据或使用实时数据,则在设置图表动画或验证图表以显示更新的数据之前,应重新计算最大值,如果希望更改轴,则应使用图表。ValueAxis[0]。最大值=最大值;其中max是根据数据输入计算的值
以下是一个例子:
function loop() {
var data = generateChartData();
chart.valueAxes[0].maximum = max;
// refresh data:
chart.animateData(data, {
duration: 1000,
complete: function () {
setTimeout(loop, 2000);
}
});
}
本例中使用了上述行:
我不确定在条形图中动态加载数据的方法是什么。如果您使用的是dataLoader插件,您可能希望向dataUpdated事件添加一个侦听器,并根据收到的数据更新第一个值轴的最大值。如果您使用的是AJAX,那么您可以选择在收到响应后构建图表。如果你能分享你是如何获得数据的,我可以给你更好的建议。