Javascript 在am图表中,我如何删除图例标签或需要显示;“没有价值观”;当我得到0值时

Javascript 在am图表中,我如何删除图例标签或需要显示;“没有价值观”;当我得到0值时,javascript,amcharts,Javascript,Amcharts,am显示当am获得0值时如何删除图例标签或显示“无值” 谢谢尝试使用 要捕获添加侦听器 chart.addListener('rendered', function(event) { // populate our custom legend when chart renders chart.customLegend = document.getElementById('legend'); for (var i in chart.chartData) { var row =

am显示当am获得0值时如何删除图例标签或显示“无值”


谢谢

尝试使用

要捕获添加侦听器

chart.addListener('rendered', function(event) {
  // populate our custom legend when chart renders
  chart.customLegend = document.getElementById('legend');
  for (var i in chart.chartData) {
    var row = chart.chartData[i];
    var color = chart.colors[i];
    var percent = Math.round(row.percents * 100) / 100;
    var value = row.value;
    legend.innerHTML += '<div class="legend-item" id="legend-item-' + i + '" onclick="toggleSlice(' + i + ');" onmouseover="hoverSlice(' + i + ');" onmouseout="blurSlice(' + i + ');" style="color: ' + color + ';"><div class="legend-marker" style="background: ' + color + '"></div>' + row.title + '<div class="legend-value">' + value + ' | ' + percent + '%</div></div>';
  }
});
chart.addListener('rendered',函数(事件){
//在图表呈现时填充自定义图例
chart.customLegend=document.getElementById('legend');
for(chart.chartData中的var i){
var row=图表.图表数据[i];
var color=图表颜色[i];
变量百分比=数学四舍五入(行百分比*100)/100;
var值=行值;
legend.innerHTML+=''+row.title+''+value+'|'+percent+'%;
}
});
更多详细信息可在此处找到[

您可以在图例中创建一个图标,以自定义悬停时显示的值。下面是一个示例,可以满足您的要求:

  "legend": {
    // ...
    "valueFunction": function(graphDataItem, valueText) {
      if (graphDataItem.values) { 
        if (graphDataItem.values.value === 0) {
          valueText = "no values"
        }
      }
      return valueText;
    }
  },
编辑

由于您没有指出您正在使用
periodValueText
(这就是为什么发布工作小提琴会有很大帮助的原因),您仍然可以使用valueFunction检查valueText是否为“0 kWH”或任何要替换为“无值”的字符串:

更新演示如下:

var chart=AmCharts.makeChart(“chartdiv”{
“类型”:“串行”,
“传奇”:{
“periodValueText”:“[[value.sum]]kWH”,
“valueText”:“[[value]]kWH”,
“valueFunction”:函数(graphDataItem、valueText){
if(graphDataItem.values){
如果(graphDataItem.values.value==0 | | graphDataItem.values.value==undefined){
valueText=“无值”
}
}
否则如果(valueText==“0 kWH”){
valueText=“无值”;
}
返回值文本;
},
“位置”:“正确”
},
“chartCursor”:{},
“图形”:[{
“标题”:“第一个图形”,
“valueField”:“value1”
},{ 
“标题”:“第二张图”,
“valueField”:“value2”
}, {
“标题”:“第三个图形”,
“valueField”:“value3”
}],
“类别字段”:“类别”,
“数据提供者”:[
{
“类别”:“1类”,
“价值2”:5,
“值1”:0
},
{
“类别”:“第二类”,
“价值2”:8,
“价值1”:5
},
{
“类别”:“第三类”,
“价值2”:20,
“价值1”:1
},
{
“类别”:“四类”,
“价值2”:20,
“价值1”:8
},
{
“类别”:“五类”,
“价值2”:17,
“价值1”:4
},
{
“类别”:“第6类”,
“值2”:0,
“价值1”:10
},
{
“类别”:“第7类”,
“价值2”:11,
“价值1”:6
},
{
“类别”:“第8类”,
“值2”:0,
“价值1”:9
},
{
“类别”:“第9类”,
“价值2”:8,
“值1”:0
},
{
“类别”:“第10类”,
“价值2”:15,
“价值1”:7
}
]
});


@tamil-selvan-c您可以相应地自定义/应用您的条件。您好,谢谢,@xorspark..但我遇到了一个问题:无值仅显示光标点动作。但最初,它仅显示0值,我还附上了我的代码=>'legend':{'position':'top','periodValueText':legendPeriodTemplate(src.data),'labelText':'[[title]]:','valueText':legendTemplate(src.data),'valueFunction':函数(graphDataItem,valueText){//code},您没有指出您使用的是periodValueText。这就是为什么您在所有问题中都以小提琴而不是屏幕截图的形式发布代码。legendPeriodTemplate的返回值是多少?是否为
[[value.sum]]
?我无法从您的代码中分辨出来。对于未来,您应该做一个简单的测试,这样我们就可以帮助您更轻松,而无需来回。也就是说,我更新了valueFunction。您可以让它检查您的valueText是否为“0 kWH”或任何您想要过滤掉的内容,并用“无值”替换。谢谢,@xorspark..工作正常
"valueFunction": function(graphDataItem, valueText) {
  if (graphDataItem.values) { 
    if (graphDataItem.values.value === 0 || graphDataItem.values.value === undefined) {
      valueText = "no values"
    }
  }
  else if (valueText === "0 kWH") {
    valueText = "no values";
  }
  return valueText;
}