如何更改饼图中的图例图标,我使用的是 charts_flutter 0.9.0

Posted

技术标签:

【中文标题】如何更改饼图中的图例图标,我使用的是 charts_flutter 0.9.0【英文标题】:How to change legend icon in pie chart, i am using charts_flutter 0.9.0 【发布时间】:2020-08-12 13:13:04 【问题描述】:

我正在尝试将我的饼图的图例图标从圆形更改为矩形。我为此使用以下几行,但马上就出错了。

defaultRenderer: new charts.ArcRendererConfig(
          symbolRenderer: new IconRenderer(Icons.cloud)
      ),

我收到错误消息(附截图) 请帮我更改饼图中图例的默认图标。

【问题讨论】:

您遇到的错误是什么? @MidhunMP 即使它没有编译,android studio 本身也会像这样弹出错误 - defaultRenderer: new charts.ArcRendererConfig( symbolRenderer: new IconRenderer(Icons.cloud) ), 【参考方案1】:

感谢@Midhun MP 的提示,实际上我们需要使用CustomSymbolRenderer 而不是SymbolRenderer。下面的代码解决了我的问题

class IconRenderer extends charts.CustomSymbolRenderer 
  final IconData iconData;

  IconRenderer(this.iconData);

  @override
  Widget build(BuildContext context, Size size, Color color, bool enabled) 
    // Lighten the color if the symbol is not enabled
    // Example: If user has tapped on a Series deselecting it.
    if (!enabled) 
      color = color.withOpacity(0.26);
    
    return new SizedBox.fromSize(
        size: size, child: new Icon(iconData, color: color, size: 12.0));
  

【讨论】:

【参考方案2】:

您收到该错误是因为默认情况下没有 IconRenderer 类。您必须创建一个自定义 SymbolRenderer,如下所示:

class IconRenderer extends charts.SymbolRenderer 
  final IconData iconData;

  IconRenderer(this.iconData);

  @override
  Widget build(BuildContext context,
      Size size, Color color, bool isSelected) 
    return new SizedBox.fromSize(
        size: size, child: new Icon(iconData, color: color, size: 12.0));
  

参考legend_custom_symbol

【讨论】:

感谢@Midhun MP 的提示,实际上我们需要使用CustomSymbolRenderer 而不是SymbolRenderer。

以上是关于如何更改饼图中的图例图标,我使用的是 charts_flutter 0.9.0的主要内容,如果未能解决你的问题,请参考以下文章

谷歌饼图图例导航图标颜色

如何在 Kendo UI Charts 中禁用饼图的交互式图例?

如何在 Chart.js 的饼图中(顶部)添加切片的大小?

从饼图中删除所有切片文本 (ios-charts/mpandroidchart)

饼状图表标题怎么修改

如何控制 Chart.JS 饼图图例的位置及其外观?