Javascript AmCharts-使用数据提供程序设置最大值轴

Javascript AmCharts-使用数据提供程序设置最大值轴,javascript,amcharts,Javascript,Amcharts,我正在尝试使用dataprovider设置最大值轴,因为我在条形图中动态加载数据,所以我需要查看其中一个条形图上的进度,并将其与假定为总进度的条形图进行比较 我如何做到这一点 我试过: "valueAxes": [ { "id": "ValueAxis-1", "stackType": "regular", "maximum": myDataPr

我正在尝试使用dataprovider设置最大值轴,因为我在条形图中动态加载数据,所以我需要查看其中一个条形图上的进度,并将其与假定为总进度的条形图进行比较

我如何做到这一点

我试过:

"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,那么您可以选择在收到响应后构建图表。如果你能分享你是如何获得数据的,我可以给你更好的建议。