javascript - amCharts:如何优雅地管理 dataLoader 中数据的缺乏

标签 javascript amcharts

我正在使用 amCharts 通过 dataLoader 功能提取数据来生成图表等。

我一直在思考如何优雅地处理 API 时不时传递的数据缺乏问题,以便图表显示诸如“无可用数据”之类的消息。

示例图表代码:

var chart = new AmCharts.AmSerialChart();

chart.dataLoader = { url: "/api/blobs"};
chart.categoryField = "site";
chart.type="serial";
chart.theme = "light";

var graph = new AmCharts.AmGraph();
graph.valueField = "visit";
graph.type = "column";
graph.fillAlphas = 1;
graph.lineAlpha = 0;

var valuesAxis = new AmCharts.ValueAxis();
valuesAxis.integersOnly = true;

graph.balloonText = "[[category]]: <b>Total: [[value]]</b>";
chart.depth3D = 45;
chart.angle = 45;
chart.addGraph(graph);
chart.addValueAxis(valuesAxis);

chart.write("blob_chart"); 

有人知道我如何设法检查 dataLoader 是否返回 null,如果是,则在图表上写一个计划“无可用数据”?

最佳答案

您可以使用数据加载器的postProcess handler检查数据是否为空,然后添加相关标签。 postProcess 是一个自定义函数,加载的数据在传递到图表之前先传递到该函数。

此时,您可以修改它并基于它执行任何其他任务,例如添加“无数据”标签。

即:

chart.dataLoader = {
  url: "/api/blobs",
  postProcess: function(data, options) {
    if (data === null) {
      data = [];
      options.chart.addLabel("50%", "50%", "No Data Available");
    }
    return data;
  }
};

关于javascript - amCharts:如何优雅地管理 dataLoader 中数据的缺乏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421006/

相关文章:

javascript - 不排除元素的 DOM 遍历

javascript - 我的开关/外壳工作正常,但出现控制台错误 "Cannot read property ' name' of null"

javascript - 如何在浏览器中显示EMF (MS Enhanced Meta File) 图像?

javascript - AmCharts - 使用 dataprovider 设置最大值轴

javascript - this._callback.apply 不是一个函数! Node.js Mysql错误

javascript - ng 表重新加载不起作用

javascript - Amcharts 图表 - 以较小的屏幕宽度将图表旋转到水平方向

javascript - 在 amCharts 中隐藏我的 balloonText 旁边显示的值

javascript - Serial Chart 每天有多个值? (美图)

mysql - 在 AmCharts 中显示数据库中的数据