我有一个图表如下,我只需要一对图例(数据1和数据2)显示在图表上。在ChartJS v2中,我可以像this一样使用generateLabels,但它在v3中的工作方式似乎与我所使用的不同。在v3中,有没有一种简单的方法可以使用generateLabels来实现这一点,或者我必须改变DOM结构吗?第一个
v8wbuo2f1#
options.plugins.legend.labels.generateLabels仍然可以在Chart.js v3中使用。对于您的情况,它可能如下所示:
options.plugins.legend.labels.generateLabels
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中的函数。
legend
legend.onClick
1条答案
按热度按时间v8wbuo2f1#
options.plugins.legend.labels.generateLabels
仍然可以在Chart.js v3中使用。对于您的情况,它可能如下所示:第一个
这种方法的问题是,显示的
legend
元素仍然只与单个数据集相关。如果您还想显示/隐藏其他数据集,您还需要定义一个legend.onClick
函数,类似于this answer中的函数。