Echart是一个很好的图表绘制插件,里面有各种各样的图表供我们选择,最近用echart做图表比较多,在接到一个在圆环里面套一个圈的需求时,刚开始我是真的无从下手,毕竟自己用echart的时间也不长,直接看echart官网也看不出个所以然来,最后抱着试一试的态度玩玩看,最后玩出了。

效果图如下:

主要注意的点:

1、创建的画1、创建的画布必须给定大小,不然无法显示,即.chart-box 必须设置大小1、创建的画布必须给定大小,不然无法显1、创建的画布必须给定大小,不然无法显示,即.chart-box 必须设置大小o

2、因为这个圈是自定义的用,相对定位来控制和圆环的位置关系。

3、这里用到了计算属性来计算合格率,但是计算属性有一个缺点是不能传参数,有时候感觉有点不方便吧

废话少说直接上代码,注释也是比较详细的,希望大家能看得懂,不懂的请留言

<template><div class="chart-box"><div class="chart" id="chart" ref="chart"></div><divclass="text-box":style="{background:'linear-gradient(175deg,'+ Color + '0%,rgba(66, 96, 121, 1) 100%)'}"><div class="text-wrap"><div class="pass-rate"><div>合格率</div><div>{{passData}}</div></div></div></div><div class="chart-name">{{data.name}}</div></div>
</template><script>
import echarts from 'echarts'export default {data() {return {data:[{ value: 60, name: '合格' }, { value: 20, name: '不合格' }],Color:'rgba(34, 143, 254, 1)', //由于在在我的项目中把它写成了组件,这个是为了传入颜色改变圆圈的背景色background: '',}},mounted() {this.initChart()},methods: {// 初始化图表样式initChart() {let _this = thisthis.chart = echarts.init(this.$refs.chart)this.chart.setOption({grid: {left: '8%',right: '0',bottom: '1%',containLabel: false,},legend: { //不显示图例show: false,},tooltip: {trigger: 'item',},series: [{name: '',type: 'pie',radius: ['50%', '65%'],avoidLabelOverlap: false,label: {normal: {show: false,position: 'center',textStyle: {fontSize: 14,color: '#fff',},},// 鼠标滑过显示中间文字emphasis: {show: false,textStyle: {fontSize: '14',fontWeight: 'bold',},},},labelLine: {normal: {show: false,},},data: this.data,itemStyle: {color: params => { //为了区别合格和不合格的颜色if (params.dataIndex === 0 || (params.dataIndex === 1 && params.value == 0)) {return _this.Color} else {return 'rgba(62,191,249,0.3)'}},},},],})},},computed: {passData(){let pass = this.data[0].valuelet all = this.data[1].value + this.data[0].valueif (all) {let nun = pass / allreturn (nun * 100).toFixed(2) + '%'} else {return 0}}},
}
</script><style >
.chart-box {position: relative;display: inline-block;width: 270px;height: 200px;white-space: nowrap;color: #fff;background-color: #273c4e;
}
.chart {width: 100%;height: 100%;
}.chart-name {position: relative;text-align: center;top: -90px;
}
.text-box {position: relative;top: -140px;left: 94.5px;width: 83px;height: 83px;border-radius: 100%;}
.text-wrap {position: relative;top: 0.6px;left: 1px;background-color: rgba(39, 60, 78, 1);width: 80px;height: 80px;border-radius: 100%;display: flex;justify-content: center;align-items: center;
}
.pass-rate {width: 80px;text-align: center;
}
</style>

Vue中使用Echart图表插件之圆环套圈相关推荐

  1. vue2.0_在vue中使用echarts图表插件

    说明:本例子基于vue-cli脚手架搭建 首先,安装echarts依赖 npm install echarts -S 注:安装NodeJS之后,使用npm来安装包使用的是国外的地址,经常会出现超时错误 ...

  2. Vue中使用echarts图表插件

    一.安装echarts依赖 npm install echarts -S 或者使用淘宝的镜像 npm install -g cnpm --registry=https://registry.npm.t ...

  3. vue - vue中使用echart实现柱状图和折线图

    vue中使用echart实现柱状图和折线图,所用到的数据会放到最后面,在costRate.js里面: 1,先看效果图 一些重要注释我都写到代码里面了:第一个图柱状图,第二个是折线图 2,代码实现 &l ...

  4. Vue中使用echart实现中国地图统计图

    Vue中使用echart实现中国地图统计图 前言 Echart版本的确定 全局导入或按需导入 在对应的页面调用echart 前后端数据交互注意事项 前言 在Vue2.x开发中,为了更好地展示某一个时间 ...

  5. vue中使用echart地图

    vue中使用echart地图 获取湖南的地图数据 实现的效果 步骤 一些方法 地图options 总结 获取湖南的地图数据 https://gallery.echartsjs.com/editor.h ...

  6. Vue中使echarts图表自适应

    Vue中使echarts图表自适应 1.先在main.js中自定义一个全局指令,如下 // 定义全局指令 Vue.directive('resize', { // 使用局部注册指令的方式// 指令的名 ...

  7. vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法

    vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法 配置和启用海康插件详情看本人博客 链接:https://blog.csdn.net/jinglianglove/article/de ...

  8. 在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS)

    在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS) 第一步 用npm装这个几个包 "video.js": "^6.6.0&quo ...

  9. vue中通过monment.js插件来将时间戳转换为常用的时间格式

    vue中通过monment.js插件来将时间戳转换为常用的时间格式 在项目中很多时候需要展示时间信息,我们一般都是用时间戳来传输时间信息,但是我们在页面展示的话是我们想要的常见格式,比如:2021-4 ...

  10. 推荐几个web中常用js图表插件

    推荐几个web中常用js图表插件 作者:zccst 我自己用过fusioncharts和highchart. jQuery插件有: TufteGraph flot js charts jqchart ...

最新文章

  1. 在 Ubuntu 14.04 Chrome中安装Flash Player(转)
  2. 对称加密和非对称加密介绍和区别
  3. php web server部署(PHP+Nginx+Redis+MySQL)
  4. JS-获取class类名为某个的元素-【getClass】函数封装
  5. python not in range1002无标题_Python中偶尔遇到的细节疑问(一):去除列名特殊字符、标准差出现nan、切片索引可超出范围、range步长、众数...
  6. STM32那点事(2)_时钟树(中)
  7. 监控和审计 Oracle 数据库错误
  8. php 逗号千分位,数字格式化每三位添加逗号千分位 - 文章教程
  9. C/C++混编“未定义的引用”的解决一例
  10. Linux电驴客户端,全面介绍Linux安装电驴
  11. springboot集成快递100实现查询快递,面单打印;面单取消
  12. android studio中崩溃无法查看log?
  13. Stimulsoft Reports.Net 2022.2.1
  14. Android Proximity Sensor近距离传感器P-Sensor
  15. 多张图片如何合并成一个pdf
  16. 智能云解析DNS健康监测是如何实现的?-中科三方
  17. 从首个「数实融合」公益球场,看元宇宙奏响创新「三重奏」
  18. gStore:A Graph-based SPARQL Query Engine---part1
  19. Android 华为平行视界适配(左右分屏)
  20. 计算机专业转生物信息(bioinformatics)方向必看视频

热门文章

  1. LiMo基金会API协议(V1.0)
  2. 计算机打印纸蓝韵,蓝韵报告模板设计器
  3. SHELL病毒简介(转)
  4. DJYOS开源往事二:DJYOS开源工作室时期
  5. 设计模式之死磕装饰器模式(原创)
  6. 2021联合国糖尿病日,移宇科技走​近​“糖”生活,人人享有健康管理
  7. 代表未来?自动化、区块链和知识经济你怎么看
  8. SE11表激活警告——Enhancement category for table missing
  9. python入门与提高的书籍_Python入门、基础书籍简评与推荐
  10. DatenLord前沿技术分享No.23