【前端可视化】Echarts 实现环形饼图外层带阴影效果配置

效果展示

image

实现代码

原理主要还是用两个饼图嵌套,外侧做阴影,内层放数据。配置比较复杂,怕下次遇到就做个记录吧。

initEcharts() {
        const myChart = echarts.init(this.$refs.chart)
        const userScore = this.userScore.slice(0, this.userScore.length - 1)
        let option = {
          tooltip: {
            trigger: 'item',
            renderMode: 'html',
            formatter: "<div style='color: #000000;font-style: normal;font-weight: 500;font-size: 13PX;line-height: 18PX;'>{b0}</div><div style='color: #0a9391;margin-top:10PX;'>Score +{c0}%</div>",
            borderColor: '#fff',
            padding: 12,
            extraCssText: 'box-shadow: 0PX 2PX 4PX rgba(0, 0, 0, 0.25);',
          },
          legend: {
            show: false,
          },
          title: [{
            text: `{a|Your Score}\n{b|${userScore}}{c|%}`,
            top: 'center',
            left: 'center',
            textStyle: {
              fontFamily: 'PingFang SC',
              fontStyle: 'normal',
              fontWeight: 500,
              rich: {
                a: {
                  color: '#47bfaf',
                  padding: [0, 0, 10, 0],
                  fontSize: 13,
                },
                b: {
                  color: '#47bfaf',
                  fontSize: 40,
                },
                c: {
                  color: '#47bfaf',
                  fontSize: 18,
                },
              },
            },
          }, ],
          series: [{
              name: 'border',
              type: 'pie',
              clockWise: false,
              radius: '75%',
              center: ['50%', '50%'],
              animation: false,
              data: [{
                value: 0,
                color: '#fff',
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                emphasis: {
                  disabled: true,
                },
                select: {
                  disabled: true,
                },
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  color: '#fff',
                  shadowColor: 'rgba(0, 0, 0, 0.2)',
                  shadowBlur: 15,
                  shadowOffsetX: 2,
                  shadowOffsetY: 2,
                },
              }, ],
            },
            {
              name: '',
              type: 'pie',
              radius: ['35%', '65%'],
              center: ['50%', '50%'],
              avoidLabelOverlap: false,
              selectedMode: false,
              select: {
                itemStyle: {
                  color: '#f9b762',
                },
              },
              itemStyle: {
                borderRadius: 10,
                borderColor: '#fff',
                borderWidth: 2,
                emphasis: {
                  color: '#f9b762',
                },
                borderRadius: 7,
              },
              label: {
                show: false,
                position: 'center',
              },
              emphasis: {
                label: {
                  show: false,
                },
              },
              labelLine: {
                show: false,
              },
              data: this.echartsData,
            },
          ],
        }
        option && myChart.setOption(option)
      },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于echarts立体环形饼图的绘制,你可以按照以下步骤进行操作: 1. 首先,确保你已经引入了echarts的库文件。你可以在HTML文件中通过`<script>`标签引入echarts库。 2. 创建一个HTML元素,例如一个`<div>`容器,用于显示echarts图表。给这个元素设置一个唯一的ID,以便后续调用。 3. 在JavaScript中,使用`echarts.init`方法初始化一个echarts实例,并指定要绘制图表的容器ID。 4. 定义数据源,即环形饼图的数据。数据通常是一个包含多个对象的数组,每个对象包含名称和对应的数值。 5. 配置环形饼图的样式和布局。可以设置环形饼图的大小、颜色、标签显示等。 6. 使用`setOption`方法将数据源和配置应用到echarts实例上。 下面是一个示例代码,展示如何使用echarts绘制立体环形饼图: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts 立体环形饼图示例</title> <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script> </head> <body> <div id="chart" style="width: 600px; height: 400px;"></div> <script> // 初始化echarts实例 var myChart = echarts.init(document.getElementById('chart')); // 定义数据源 var data = [ { name: '数据1', value: 335 }, { name: '数据2', value: 310 }, { name: '数据3', value: 234 }, { name: '数据4', value: 135 }, { name: '数据5', value: 1548 } ]; // 配置环形饼图的样式和布局 var option = { series: [ { type: 'pie', radius: ['50%', '70%'], // 控制内外半径,实现环形效果 avoidLabelOverlap: false, label: { show: true, position: 'outside' // 标签显示在外部 }, emphasis: { label: { show: true, fontSize: '20', fontWeight: 'bold' } }, labelLine: { show: true }, data: data } ] }; // 使用配置项和数据源绘制图表 myChart.setOption(option); </script> </body> </html> ``` 以上代码会在指定的`<div id="chart">`元素中绘制一个立体环形饼图,你可以根据实际需求修改数据和样式配置。希望这能够帮到你!如有更多问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值