echarts圆环添加背景图

给echarts圆环添加背景图

对于无法实现的背景图 可以考虑添加echarts背景图 主要使用graphic属性

在这里插入图片描述

<template>
  <div style="height: 400px; width: 500px;background-color: #CCC;">
    <v-chart
      :option="options"
      autoresize
      style="width: 100%; height: 100%"
    />
  </div>
</template>

<script>
  export default {
    name: 'AboutView',
    data() {
      return{
        dataList: [
          { value: 1048, name: 'Search Engine' },
          { value: 735, name: 'Direct' },
          { value: 580, name: 'Email' },
          { value: 484, name: 'Union Ads' },
          { value: 300, name: 'Video Ads' }
        ]
      }
    },
    computed: {
      options() {
        return {
          tooltip: {
            trigger: 'item'
          },
          legend: [
            {
              top: '45%',
              left: '5%',
              orient: 'vertical',
              itemWidth: 20,
              itemHeight: 10,
              itemGap: 30, // 两个图例之间的间隔
              data: ['Search Engine', 'Direct'],
              formatter: (name) => {	// 添加
                const item = this.dataList.find(item => item.name === name)
                const arr = [
                  '{a|' + item.name + '}',
                  '{b|' + item.value + '}'
                ]
                return arr.join('  ')
              },
              textStyle: {
                padding: [0, 0, 0, 24],
                lineHeight: 8,
                rich: {
                  a: {
                    fontSize: 14,
                    width: 110,
                    color: '#ccc'
                  },
                  b: {
                    fontSize: 16,
                    fontWeight: 600,
                    color: 'red',
                  }
                }
              },
            },
            {
              top: '45%',
              right: '5%',
              orient: 'vertical',
              itemWidth: 20,
              itemHeight: 10,
              itemGap: 20, // 两个图例之间的间隔
              data: ['Email', 'Union Ads','Video Ads'],
              formatter: (name) => {	// 添加
                const item = this.dataList.find(item => item.name === name)
                const arr = [
                  '{a|' + item.name + '}',
                  '{b|' + item.value + '}'
                ]
                return arr.join('  ')
              },
              textStyle: {
                padding: [0, 0, 0, 24],
                lineHeight: 8,
                rich: {
                  a: {
                    fontSize: 14,
                    width: 110,
                    color: '#ccc'
                  },
                  b: {
                    fontSize: 16,
                    fontWeight: 600,
                    color: 'red',
                  }
                }
              },
            }
          ],
          // 添加背景图的主要代码
          graphic: [
            {
              type: 'image',
              id: 'bgcImage',
              left: 'center',
              top: 45,
              z: -15, // 将 z 设置为 -1,使背景图在环形图下面
              bounding: 'raw',
              origin: [0, 0], // 图片的原点位置,根据实际情况调整
              style: {
                image: require('@/assets/img/abc.png'), // 替换成您的背景图 URL
                width: 220, // 背景图宽度
                height: 220, // 背景图高度
                opacity: 1
              }
            }
          ],
          series: [
            {
              name: 'Access From',
              type: 'pie',
              radius: ['45%', '50%'],
              center: ['50%', '38.5%'],
              avoidLabelOverlap: false,
              label: {
                show: false,
                position: 'center'
              },
              emphasis: {
                label: {
                  show: true,
                  fontSize: 40,
                  fontWeight: 'bold'
                }
              },
              labelLine: {
                show: false
              },
              data: this.dataList
            }
          ]
        }
      }
    }
  }
</script>

<style lang="scss" scoped>

</style>
### 实现 ECharts 中更复杂的圆环效果 为了创建更复杂和美观的圆环,在 ECharts 中可以通过配置项来调整形的各种属性。下面是一个详细的例子,展示了如何构建一个带有自定义样式的圆环。 #### 配置基本参数 首先设置全局的颜色主题以及提示框样式: ```javascript option = { color: ['#3398DB'], // 设置表颜色 tooltip : { // 提示框组件 trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, }; ``` #### 定义系列数据 接着指定要展示的数据序列及其特定选项,这里特别指定了`type:'pie'`表示这是一个饼类型,并通过radius属性控制内外半径形成圆环的效果: ```javascript series: [ { name:'访问来源', // 数据集名称 type:'pie', // 表类型为饼 radius : ['50%', '70%'],// 内外半径比例, 创建圆环形外观 avoidLabelOverlap: false, label: { show: false, // 是否显示标签 position: 'center' }, emphasis: { label: { show: true, fontSize: '30', fontWeight: 'bold' } }, labelLine: { show: false }, data:[ {value:335, name:'直接访问'}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value:135, name:'视频广告'}, {value:1548,name:'搜索引擎'} ] } ] ``` 上述代码片段实现了基础版带有一些视觉增强特性的圆环[^1]。 对于希望进一步定制化的需求,比如改变背景色、添加动画效果或者交互功能,则可以继续探索官方文档中的更多高级特性[^2]。 另外值得注意的是,如果是在微信小程序环境中应用此技术栈,那么还需要关注一下关于 WePY 或者其他框架下集成第三方库的最佳实践方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值