IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> echarts环形图--彩虹图--蚊香图 -> 正文阅读

[JavaScript知识库]echarts环形图--彩虹图--蚊香图

需要实现的效果图

在这里插入图片描述

分析如何实现

1、可以看到这个数据图标不是常规的echarts图,需要从echarts的更多资源去找类似的例子copy,找了一圈还真找到类似的如图:
在这里插入图片描述

2、例子找到了,大致也差不多,动手改。
3、两者之间的区别:
(1)圈的个数不同、颜色不同
(2)右侧文字字体的样式(字体、颜色等)

上代码

定义变量

//定义要用到的变量:
  series: [],
  maxRadius:  90,
  barWidth: 6,
  barGap: 2,
  // sumValue: 0,
  showValue: true,
  showPercent: true,
  option: {},
//图形数据
  PieDatas: [
            {
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率"
            },
            {
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率"
            },
            {
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率"
            },
            {
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率"
            },
            {
                "value": 95,
                "name": "XXXXXXXXXXXXXXXX完整率识别准确率"
            },
            {
                "value": 95,
                "name": "XXXXXXX完整率时钟准确率"
            },
            {
                "value": 95,
                "name": "车XXXXXXXXXX数据XXXXXXXXXX完整率上传率"
            },{
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率上传率"
            },{
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率可用率"
            },{
                "value": 95,
                "name": "XXXXXXXXXX数据XXXXXXXXXX完整率用率"
            },
        ],
//图形颜色
	BarColor:  [
            {
                "color1": "#4E9DFF",
                "color2": ""
            },
            {
                "color1": "#36C4F7",
                "color2": ""
            },
            {
                "color1": "#65D4AB",
                "color2": ""
            },
            {
                "color1": "#9FFF8D",
                "color2": ""
            },
            {
                "color1": "#FFE154",
                "color2": ""
            },
            {
                "color1": "#FFB854",
                "color2": ""
            },{
                "color1": "#FF9254",
                "color2": ""
            },{
                "color1": "#FF8181",
                "color2": ""
            },{
                "color1": "#FF81BA",
                "color2": ""
            },{
                "color1": "#DC81FF",
                "color2": ""
            },
        ],

绘制图形

this.pieDatas.map((item, i) => {
            this.series.push({
                type: 'pie',
                clockWise: false, //顺时加载
                hoverAnimation: false, //鼠标移入变大
                radius: [(this.maxRadius - i * (this.barGap + this.barWidth)) + '%', (this.maxRadius - (i + 1) * this.barWidth - i * this.barGap) + '%'],
                center: [ "30%", "50%"],
                label: {
                    show: false
                },
                itemStyle: {
                    label: {
                        show: false,
                    },
                    labelLine: {
                        show: false
                    },
                    borderWidth: 5,
                },
                data: [{
                    value: item.value,
                    name: item.name,
                    itemStyle: {
                        color: this.barColor[i].color1
                    }
                }, {
                    value: 100 - item.value,
                    name: '',
                    itemStyle: {
                        color: "transparent",
                    },
                    tooltip: {
                        show: false
                    },
                    hoverAnimation: false
                }]
            })
            this.series.push({
                name: 'blank',
                type: 'pie',
                silent: true,
                z: 0,
                clockWise: false, //顺时加载
                hoverAnimation: false, //鼠标移入变大
                radius: [(this.maxRadius - i * (this.barGap + this.barWidth)) + '%', (this.maxRadius - (i + 1) * this.barWidth - i * this.barGap) + '%'],
                center: [ "30%", "50%"],
                label: {
                    show: false
                },
                itemStyle: {
                    label: {
                        show: false,
                    },
                    labelLine: {
                        show: false
                    },
                    borderWidth: 5,
                },
                data: [{
                    value: 1,
                    itemStyle: {
                        color: "#f7f7f7",//圆圈另一半的颜色
                        borderWidth: 0
                    },
                    tooltip: {
                        show: false
                    },
                    hoverAnimation: false
                }]
            });

        })
		this.option = {
                    grid: {
                        left:  0,
                        right:  0,
                        top:  0,
                        bottom:  0,
                    },
                    backgroundColor: '#fff',
                    tooltip: {
                        show: true,
                        trigger: "item",
                    },
                    legend: {//右侧文字
                        show: true,
                        left: '50%',
                        top: 'middle',
                        icon: "circle",
                        itemWidth: 6,
                        itemHeight: 8,
                        itemGap:  5,
                        textStyle: {
                        	//右侧字体样式
                            rich: {
                                bothNameValue: {
                                    width: 300,  //给文字设置统一长度,保证右侧的百分比对齐
                                },
                                title: {
                                    fontSize: 14,
                                    lineHeight: 16,
                                    color: '#999999',
                                    width: 260,
                                },
                                value: {
                                    color: '#489DF7',
                                    fontSize: 18,
                                    fontFimely: 'DIN Alternate'
                                }
                            }
                        },
                        formatter: (name) => {
                                var datas = this.pieDatas;
                                let total = 0;
                                datas.map(item => {
                                    total += (item.value - 0)
                                })
                                let valueIndex = datas.map(item => item.name).indexOf(name);
                                let htmlValue = this.showPercent ? datas[valueIndex].value + "%" : ''
                                return "{title|" + name +  "} {value|" + htmlValue + "}"
                                // return name + "  " + (this.showPercent ? ((datas[valueIndex].value / total) * 100).toFixed(2) + "%" : '');
                            } ,
                        
                    },
                    series: this.series,
                
            }


//最后把option放到echarts中就可以了
this.myChart.setOption(this.option);

最后

按照代码可以做出一样的图表出来,无脑复制会吧各位大佬。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:22:27  更:2021-07-13 17:25:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:13:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码