Javascript Amchart不显示值为0的数据

Javascript Amchart不显示值为0的数据,javascript,amcharts,Javascript,Amcharts,我在一个图形中工作,其中数据来自类似服务器的对象数组 我不需要一些数据来显示在我的图表中,数字=0的数据,我想知道amchart是否有一些函数来不显示这个 下面是一个代码示例: var data =[ {'number':1, 'date':'11:00-11:59', 'duration': 3}, {'number':2, 'date':'12:00-12:59', 'duration':6}, {'number':4, 'date':'13:00-13:59', 'duration':12

我在一个图形中工作,其中数据来自类似服务器的对象数组

我不需要一些数据来显示在我的图表中,数字=0的数据,我想知道amchart是否有一些函数来不显示这个

下面是一个代码示例:

var data =[
{'number':1, 'date':'11:00-11:59', 'duration': 3},
{'number':2, 'date':'12:00-12:59', 'duration':6},
{'number':4, 'date':'13:00-13:59', 'duration':12},
{'number':8, 'date':'14:00-14:59', 'duration':8},
{'number':0, 'date':'14:00-14:59', 'duration':0}
];

var chart = AmCharts.makeChart("chartdiv", {
"theme": "light",
"type": "serial",
"startDuration": 2,
"dataProvider": data,
"valueAxes": [{
    "id": "number",
    "position": "left",
    "title": "N Llamadas"
},{
    "id": "durationAxis",
    "position": "right",
    "title": "duration"
}],
"graphs": [{
    "balloonText": "[[category]]: <b>[[value]]</b>",
    "fillColorsField": "color",
    "fillAlphas": 1,
    "lineAlpha": 0.1,
    "type": "column",
    "valueField": "number"
},{
    "bullet": "square",
    "bulletBorderAlpha": 1,
    "bulletBorderThickness": 1,
    "dashLengthField": "dashLength",
    "legendValueText": "[[value]]",
    "title": "duration",
    "fillAlphas": 0,
    "valueField": "duration",
    "valueAxis": "durationAxis"
}],
"depth3D": 20,
"angle": 30,
"chartCursor": {
    "categoryBalloonEnabled": false,
    "cursorAlpha": 0,
    "zoomable": false
},
"categoryField": "date",
"categoryAxis": {
    "gridPosition": "start",
    "labelRotation": 0
},
"export": {
    "enabled": true
 }

});
var数据=[
{'number':1,'date':'11:00-11:59','duration':3},
{'number':2,'date':'12:00-12:59','duration':6},
{'number':4,'date':'13:00-13:59','duration':12},
{'number':8,'date':'14:00-14:59','duration':8},
{'number':0,'date':'14:00-14:59','duration':0}
];
var chart=AmCharts.makeChart(“chartdiv”{
“主题”:“光”,
“类型”:“串行”,
“起始持续时间”:2,
“数据提供者”:数据,
“价值轴”:[{
“id”:“编号”,
“位置”:“左”,
“标题”:“N Llamadas”
},{
“id”:“durationAxis”,
“位置”:“正确”,
“标题”:“期限”
}],
“图表”:[{
“文本”:“[[category]]:[[value]]”,
“fillColorsField”:“color”,
“填充字母”:1,
“lineAlpha”:0.1,
“类型”:“列”,
“valueField”:“编号”
},{
“子弹”:“方形”,
“Bullet BorderAlpha”:1,
“厚度”:1,
“dashLength字段”:“dashLength”,
“legendValueText”:“[[value]]”,
“标题”:“期限”,
“fillAlphas”:0,
“valueField”:“持续时间”,
“valueAxis”:“durationAxis”
}],
“深度3D”:20,
“角度”:30,
“图表光标”:{
“CategoryBallooneEnabled”:false,
“cursorAlpha”: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;
    }
 }

您的意思是要禁用该特定列的引出序号吗?我希望如果number=0,则图形不会显示该对象@xorspark的任何内容