Chart.js 隐藏数据集时更改图例项样式

Chart.js 隐藏数据集时更改图例项样式,chart.js,Chart.js,嘿,我正在使用awesome Chart.js库,我想定制图例项的样式。 现在,当数据集被隐藏时,我们可以在图例中看到一条线。 我想改为设置文本不透明度。 请问怎么换这个 感谢您的帮助请查看这部分文档: 我希望这会有所帮助。请查看文档的这一部分: 我希望这会有所帮助。不幸的是,如果您计划使用chart.js提供的自动生成的图例,则没有真正简单的方法来实现这一点。但这是可能的 如果通读,您会发现删除线实际上是在画布对象中渲染的(如下所示) 因此,要改变这种行为,您必须通过扩展Chart.Leg

嘿,我正在使用awesome Chart.js库,我想定制图例项的样式。 现在,当数据集被隐藏时,我们可以在图例中看到一条线。 我想改为设置文本不透明度。 请问怎么换这个


感谢您的帮助

请查看这部分文档:


我希望这会有所帮助。

请查看文档的这一部分:


我希望这会有所帮助。

不幸的是,如果您计划使用chart.js提供的自动生成的图例,则没有真正简单的方法来实现这一点。但这是可能的

如果通读,您会发现删除线实际上是在画布对象中渲染的(如下所示)

因此,要改变这种行为,您必须通过扩展Chart.Legend并实现自己的
draw
函数来实现它。由于您只关心更改此小细节,因此只需复制图表即可。图例
绘图
功能并进行小更改

var fillText = function(x, y, legendItem, textWidth) {
  if (legendItem.hidden) {
    // lighten the hidden text
    ctx.fillStyle = Chart.helpers.color(fontColor).lighten(0.75).rgbString();
  }

  ctx.fillText(legendItem.text, boxWidth + (fontSize / 2) + x, y); 

  // restore the original fillStyle so we dont impact the rest of the labels
  ctx.fillStyle = fontColor;
};
下面是一个演示我的确切意思的示例(显示如何正确扩展Chart.Legend)

如果您想做一些比减轻文本更奇特的事情,我强烈建议您实现自己的自定义外部图例。您可以使用config选项和prototype方法来实现这一点


下面是另一个演示自定义外部图例的示例。由于图例现在位于canvas对象的外部,因此可以使用css和javascript对其进行样式设置。不幸的是,如果您计划使用chart.js提供的自动生成的图例,则没有真正简单的方法可以做到这一点。但这是可能的

如果通读,您会发现删除线实际上是在画布对象中渲染的(如下所示)

因此,要改变这种行为,您必须通过扩展Chart.Legend并实现自己的
draw
函数来实现它。由于您只关心更改此小细节,因此只需复制图表即可。图例
绘图
功能并进行小更改

var fillText = function(x, y, legendItem, textWidth) {
  if (legendItem.hidden) {
    // lighten the hidden text
    ctx.fillStyle = Chart.helpers.color(fontColor).lighten(0.75).rgbString();
  }

  ctx.fillText(legendItem.text, boxWidth + (fontSize / 2) + x, y); 

  // restore the original fillStyle so we dont impact the rest of the labels
  ctx.fillStyle = fontColor;
};
下面是一个演示我的确切意思的示例(显示如何正确扩展Chart.Legend)

如果您想做一些比减轻文本更奇特的事情,我强烈建议您实现自己的自定义外部图例。您可以使用config选项和prototype方法来实现这一点


下面是另一个演示自定义外部图例的示例。由于图例现在位于canvas对象外部,您可以使用css和javascript对其进行样式设置。谢谢,我已经看过了,但没有解释如何更改样式谢谢,我已经看过了,但它没有解释如何更改style@user2401221agreedamazing但是否可以在react-chartjs-2中重现相同的行为?@user2401221 agreedamazing但是否可以在react-chartjs-2中重现相同的行为?您的问题得到了正确回答。您的问题得到了正确回答。