使用带有ChartJS v3的generateLabels删除图表上的冗余图例

plupiseo  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(217)

我有一个图表如下,我只需要一对图例(数据1和数据2)显示在图表上。
在ChartJS v2中,我可以像this一样使用generateLabels,但它在v3中的工作方式似乎与我所使用的不同。
在v3中,有没有一种简单的方法可以使用generateLabels来实现这一点,或者我必须改变DOM结构吗?
第一个

v8wbuo2f

v8wbuo2f1#

options.plugins.legend.labels.generateLabels仍然可以在Chart.js v3中使用。对于您的情况,它可能如下所示:

generateLabels: chart => chart.data.labels.slice(0, 2).map((l, i) => ({
     datasetIndex: i,
     text: l,
     fillStyle: chart.data.datasets[i].backgroundColor,
     strokeStyle: chart.data.datasets[i].backgroundColor,
     hidden: chart.getDatasetMeta(i).hidden
  }))

第一个
这种方法的问题是,显示的legend元素仍然只与单个数据集相关。如果您还想显示/隐藏其他数据集,您还需要定义一个legend.onClick函数,类似于this answer中的函数。

相关问题