使用Chartjs.org V2.7过滤图例项

时间:2017-09-22 23:09:09

标签: javascript chart.js chartjs-2.6.0

我正在构建一系列圆环图,我想删除图例中的第二项,所以当我使用generateLegend()方法生成图例时,我只想获得第一个值。

documentation中有一个读取

的选项
  

过滤图例中的图例项目。接收2个参数,一个图例项和图表数据

但是我找不到一个如何使用它的例子。在这个Pen中你可以看到中间的2个标签,我只想显示第一个标签。我尝试了不同的方法但没有成功。删除该项目对我不起作用,因为<li>项目仍然存在。这是我正在使用的代码。

$id = function(id) {
  return document.getElementById(id);
};

var langDataEs = {
  type: "doughnut",
  data: {
    datasets: [
      {
        data: [75, 25],
        backgroundColor: ["#8dc63f", "#1d1d1d"]
      }
    ],
    labels: ["es", "learning"]
  },
  options: {
    legend: {
      display: false,
      /* I would like to remove the item "learning" */
      filter: function() {

      },
    },
    responsive: true
  }
};

langChartEs = new Chart($id("langEs").getContext("2d"), langDataEs);
$id("es").innerHTML = langChartEs.generateLegend();

提前感谢任何指示。

1 个答案:

答案 0 :(得分:4)

过滤功能与Javascript的原生Array.prototype.filter完全相同。因此,如果要在特定索引处显示图例,则返回true。

编辑:过滤器功能会出现在labels字段内。

 legend: {
      display: true,
      labels: {
           filter: function(legendItem, data) {
                return legendItem.index != 1 
           }
      }
 }