echarts饼图-自定义legend内容

自定义legend内容,从而显示更多内容,并且设置数值为0的内容在图表中显示灰色效果,其效果图如下
在这里插入图片描述
实现代码如下:

const total = 53;
const alarmTypeData = [
  {
    name: '温度告警',
    value: 33,
    ratio: 62.26
  },
  {
    name: '湿度告警',
    value: 0,
    ratio: 0.0
  },
  {
    name: '烟雾告警',
    value: 20,
    ratio: 37.74
  },
  {
    name: '水浸告警',
    value: 0,
    ratio: 0.0
  },
  {
    name: '安防告警',
    value: 0,
    ratio: 0.0
  },
  {
    name: '网络告警',
    value: 0,
    ratio: 0.0
  }
];
const colors = [
  '#7F8AF2',
  '#FFD666',
  '#F892B7',
  '#FFA275',
  '#79D38A',
  '#81D3F8'
];
let legendSelected = {};
alarmTypeData.forEach((item, index) => {
  // legendSelected[item.name] = item.value > 0
  item.itemStyle = {
    color: colors[index]
  };
  if (item.value <= 0) {
    item.itemStyle = {
      color: '#CCCCCC'
    };
  }
});
option = {
  color: colors,
  tooltip: {
    trigger: 'item',
    formatter: (v) => {
      return `${v.marker} ${v.name} ${v.value}`;
    }
  },
  legend: {
    icon: 'circle', // 图例形状
    top: '30%',
    left: 'right',
    orient: 'vertical',
    align: 'left', // 文字位置
    padding: [0, 20],
    selected: legendSelected,
    formatter(name) {
      let target;
      alarmTypeData.forEach((item) => {
        if (item.name === name) {
          target = item;
        }
      });
      return `{a| ${name} } {c| |} {b| ${target.value} } {c| ${target.ratio}%}`;
    },
    textStyle: {
      align: 'right',
      rich: {
        a: {
          color: '#666666',
          width: 80,
          fontSize: 14
        },
        b: {
          color: '#666666',
          width: 60,
          fontSize: 14
        },
        c: {
          color: '#999999',
          fontSize: 14
        }
      }
    }
  },
  series: [
    {
      name: '告警类型',
      type: 'pie',
      radius: ['45%', '60%'],
      center: ['30%', 'center'],
      labelLine: {
        show: false
      },
      label: {
        show: true,
        position: 'center',
        fontSize: 18,
        formatter: '告警总数\n\n' + total
      },
      avoidLabelOverlap: false,
      data: alarmTypeData
    }
  ]
};

备注:可以在echarts官网示例中运行代码:https://echarts.apache.org/examples/zh/editor.html?c=pie-borderRadius

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义echarts饼图的图例,可以按照以下步骤进行操作: 1. 在option中添加legend对象,设置图例的相关属性。例如,可以设置图例的布局方式(水平或垂直)、是否添加滚动页码、图例的位置、图例的图标样式、图例的字体样式等。示例代码如下: ``` legend: { orient: "vertical", //图例的布局,水平布局、垂直布局 type: 'scroll', //是否添加滚动页码 data: count, //图例的数据,可以是一个数组或对象 right: 15, //图例距离容器右侧的距离 top: 'middle', //图例距离容器顶部的距离 icon: 'circle', //图例的图标样式 itemWidth: 8, //图例的宽度 itemHeight: 8, //图例的高度 textStyle: { //图例字体样式 color: "#000", //字体颜色 fontSize: 14, //字体大小 fontFamily: "微软雅黑" //字体样式 } } ``` 通过以上步骤,您可以自定义echarts饼图的图例,根据需要设置相关属性,使图例符合您的要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [echarts饼图: 图例自定义、数值直观显示、标题位置](https://blog.csdn.net/wyl164778/article/details/118999300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [解决echarts饼图标签重叠的问题](https://download.csdn.net/download/weixin_38554186/13711299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值