我在图表中工作,数据来自服务器,如Object&#39。
我不需要在我的图表中显示一些数据,其中数字= 0,我想知道amchart是否有一些功能不显示这个。
以下是代码示例:
<form method="post" class="login-form" enctype="multipart/form-data"
action="my.php">
在这种情况下,我不想显示数组的最后一项,因为数字为0,我不应该为原因项目创建一个新数组。 提前致谢
答案 0 :(得分:0)
如果没有因为折线图的子弹而修改数组,那么在值为0时不显示图形对象是非常不可能的(您可以使用alphaField隐藏列,但是您无法删除子弹)。您可以编写一个初始化处理程序,该处理程序将零值清空,以便图表在图表初始化时根本不显示点或列:
//Nulls out any field that contains a zero, effectively hiding the point/column from the chart.
//Note that the category will still be visible if both points are null unless you null out that category as well.
AmCharts.addInitHandler(function(chart) {
var valueFields = chart.graphs.map(function(graph) {
return graph.valueField;
});
chart.dataProvider.forEach(function(dataItem) {
valueFields.forEach(function(valueField) {
if (dataItem[valueField] === 0) {
dataItem[valueField] = null;
}
})
})
}, ["serial"]);
请注意,这也会影响数据导出(csv,xlsx,json)。如果要将这些零值重新添加到数据导出中,可以使用导出插件中的processData
回调来修改数据以重新添加零:
"export": {
"enabled": true,
//re-add nulled out values as zeroes for data export:
"processData": function(data, cfg) {
var valueFields = this.setup.chart.graphs.map(function(graph) {
return graph.valueField;
});
data.forEach(function(dataItem) {
valueFields.forEach(function(valueField) {
if (dataItem[valueField] == null) {
dataItem[valueField] = 0;
}
});
});
return data;
}
}