繁体   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