2

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

文档中有一个选项读取

从图例中过滤出图例项。接收 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();

在此先感谢您的任何指点。

4

1 回答 1

8

filter 函数的工作方式与 Javascript 的 native 完全相同Array.prototype.filter。因此,如果您想在特定索引处显示图例,只需返回 true。

编辑:过滤器功能将进入该labels字段。

 legend: {
      display: true,
      labels: {
           filter: function(legendItem, data) {
                return legendItem.index != 1 
           }
      }
 }
于 2017-11-14T20:14:00.077 回答