前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue+echarts 实现两个小例子

vue+echarts 实现两个小例子

作者头像
何处锦绣不灰堆
发布2020-09-22 09:33:30
1.3K0
发布2020-09-22 09:33:30
举报
文章被收录于专栏:农历七月廿一农历七月廿一

来吧,今天写一个关于vue+echarts绘制图表的教程,写的原因很简单, 最近有不少人问,这是其一,其二是我的博客里面没有一片关于echarts的相对比较能看的教程,所以今天就写一篇,我们以折线图和饼图作为例子实现,原因是他们的数据格式相对柱状图来讲比较简单,这个学会了,可以应付绝大多数的图表,当然不包括3D图,虽然echarts支持3D图的绘制,但是这里不涉及,本文主要从几个注意的点说,因为毕竟怎么使用它已经被广大的博友写烂了,这里也就不耽误时间。 引入:

如果你是vue2.0的版本,引入的方式还是一样:
代码语言:javascript
复制
npm install echarts
如果是vue3.0的话,引入方式稍微改变:
代码语言:javascript
复制
npm add echarts
全局引入它:
代码语言:javascript
复制
import echarts from 'echarts
Vue.prototype.$echarts = echarts
按需引入:
代码语言:javascript
复制
let echarts = require("echarts/lib/echarts");
// 引入折线图等组件
require("echarts/lib/chart/line");
require("echarts/lib/chart/bar");
require("echarts/lib/chart/radar");
// 引入提示框和title组件,图例
require("echarts/lib/component/tooltip");
require("echarts/lib/component/title");
require("echarts/lib/component/legend");
上面是如何引入它,不多废话,下面说如何使用它
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
 //生成折线图
            drowChart_line() {
                let _this = this;
                let workflow_line = _this.$echarts.init(document.getElementById('workflow_line'), 'light')
                workflow_line.setOption({
                    legend: {
                        data: this.line_desc// 描述信息
                        //格式:["OCMS","UPM"]
                    },
                    xAxis: {
                        type: 'category',
                        data: this.month_line_Lists, // x轴数据
                        //格式:["30","31","32","33","34","35","36","37","38","39"]
                        name: this.line_unit,   // x轴名称单位
                        // x轴名称样式
                        nameTextStyle: {
                            fontWeight: 600,
                            fontSize: 18
                        }
                    },
                    yAxis: {
                        type: 'value',
                        // y轴名称样式
                        nameTextStyle: {
                            fontWeight: 600,
                            fontSize: 18
                        }
                    },
                    tooltip: {
                        trigger: 'axis'   // axis   item   none三个值
                        confine: true, 
                    },
                    series: this.series_line_Lists
                    
                },true) //这里的true一定要有,不然的话会导致你的图表不根据数据的变化进行更新
            },
  • 这里的this.series_line_Lists格式为:
代码语言:javascript
复制
[{"name":"OCMS","data":[0,2,0,1,2,0,0,0,0,0],"type":"line"},{"name":"UPM","data":[0,0,0,1,0,0,0,0,0,0],"type":"line"}]}}
注意的点:
  • 末尾的true

这里的true如果不加的话,会导致vue的数据更新了,视图层面的数据也更新了,但是折线图却没有任何更新

  • 函数执行结束绘制图表

echarts使用的是canvas绘制,如果你说的数据是在图出现以后返回的,会导致绘制失败,如果你的数据是在data里面定义的,那么你需要保证数据加载结束进行绘制图表,所以你的绘制函数需要在mounted里执行,这样就保证了数据加载结束进行绘制图表了。

  • confine

这个属性是说我们的提示浮层不会超出div的限制,会一直随着鼠标移动达到跟随的一个效果,这也是网上最头疼的一个事情

  • legend

这个属性是类型图例或者备注的一个东西,一般的话,默认的配置就是可以的的,但是如果你的数据项比较多的时候,配置一下type: ‘scroll’,就需要分页展示了,例如下图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
饼图
代码语言:javascript
复制
drowChart_pie() {
                let _this = this;
                // 基于准备好的dom,初始化echarts实例
                let workflow_pie = this.$echarts.init(document.getElementById('workflow_pie'), 'light')
                this.loading = false
                workflow_pie.setOption({
                    tooltip: {
                        trigger: 'item',
                        formatter: '{a} <br/>{b} : {c} ({d}%)'
                    },
                    legend: {
                        type: 'scroll',
                        orient: 'vertical',
                        left: 'left',
                        data: this.desc_data
                        //['p1','p2','p3','p4']
                    },
                    series: [
                        {
                            name: '来源',
                            type: 'pie',
                            radius: '70%',
                            center: ['50%', '60%'],
                            data: this.series_data,
                            //[{name:'p1',value:2},{name:'p2',value:4},{name:'p3',value:2},{name:'p4',value:3},]
                            itemStyle: {
                                emphasis: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                },
                                normal: {
                                    label: {
                                        show: true,
                                        //position: 'inner', //在内部显示
                                        //formatter: '{b} : {c} ({d}%)'
                                        formatter: '{b} : {c} ({d}%)' //只显示百分比
                                    },
                                    labelLine: {show: true}, //是否显示连接线
                                }
                            },
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        },
                    ],

                })
            }

这里的两个demo只是想介绍一下echarts怎么使用,别的一些图表也都只是一些data格式不同,刚好这两个demo是我使用的,所以借此机会记录一下,中间的一些坑也可以帮助一些和我一样对这个不熟悉这个的小伙伴当作一个参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果你是vue2.0的版本,引入的方式还是一样:
  • 如果是vue3.0的话,引入方式稍微改变:
  • 全局引入它:
  • 按需引入:
  • 上面是如何引入它,不多废话,下面说如何使用它
  • 注意的点:
  • 饼图
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档