Legend.labels.template 实施

Legend.labels.template implementation

在添加

之前,我的实现一直运行良好

legend.labels.template = "# dataItem.fName # ";

我想格式化图例以使其与工具提示相同。

legend:{
  visible:true,
  labels:
  {
    template: "#= dataItem.fname #"
  }
},

这里是JSFIDDLE.

在此fiddle中,当您注释掉legend.label.templates时,它不起作用。

控制台错误表明 dataItem未定义。我不知道为什么,否则你可以创建一个函数来从加入的 data 集合中获取 fname。

这是你的变量data代码

data = data.reduce(function (a, b) {
        return a.concat(b)
      });
console.log(data);

改变你的模板可以这样

legend:{
  visible:true,
  labels:
  {
    template: "#= getLegendLabelBy(text) #"
  }
},

并为其创建函数

function getLegendLabelBy(data) {
   var label = "";
   // do loop through data and grab match data by its series name
   for(var i = 0; i < data.length; i++) {
       var series = data[i].series;

       // condition operation here and assign label value
       //.......
   }

   return label;
}

一个快速的解决方案可能是将您的系列命名为 fname:

   series: [{
        type: "column",
        field: "value",
        stack: true,
        name: "#= group.items[0].fname || group.items[1].fname #",
        highlight: {
            visible: false,
        }
    }],

已更新FIDDLE