首页 > 解决方案 > AmCharts 4 处理空数据

问题描述

我正在研究动态加载数据的 AmCharts。有时,响应中可能会发送空数据。我需要在 AmCharts4 中处理空数据。 在此链接中,我看到了 Amcharts3 处理空数据的示例

var chart = am4core.create("reason_for_failure", am4charts.PieChart);
        // Add and configure Series
        var pieSeries = chart.series.push(new am4charts.PieSeries());
        pieSeries.dataFields.value = "litres";
        pieSeries.dataFields.category = "country";
        pieSeries.slices.template.stroke = am4core.color("#fff");
        pieSeries.slices.template.strokeWidth = 2;
        pieSeries.slices.template.strokeOpacity = 1;

        // This creates initial animation
        pieSeries.hiddenState.properties.opacity = 1;
        pieSeries.hiddenState.properties.endAngle = -90;
        pieSeries.hiddenState.properties.startAngle = -90;

        chart.data = [];

标签: javascriptamchartsjsonresponse

解决方案


看起来他提供的示例代码或多或少直接来自我们的饼图演示之一,例如带有图例的饼图,因此我将其与镜像 GitHub 问题中的解决方案混合并匹配(底部的演示链接)。

同样,该事件非常适合处理分配空数组的情况,例如beforevalidated chart.data

chart.events.on("beforevalidated", function(event) {
  // check if there's data
  console.log(event.target.data.length);
  if (event.target.data.length == 0) {
    // handle null data here
  }
});

它必须是beforevalidated事件,因为如果没有数据,beforedatavalidated就不会触发。

演示:

https://codepen.io/team/amcharts/pen/88d11b5385a2669319c1a0fcdaa1e199/


推荐阅读