vue使用Echarts图表

童话_xxv 关注

 0.5 2018.12.11 09:09* 字数 325 阅读 1456评论 2喜欢 13

在开发后台系统时,使用图表进行数据可视化,这样会使数据更直观、清晰、美观。所以我在项目里选用Echart,对部分数据进行图表显示。
一、使用Echarts的两种方法:
1.npm命令安装
npm install echarts --save
2.CDN方法引入
index.html中,<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0/echarts.min.js"></script>
上面的两种方法,我采用的是第二种方法,一开始我用的是第一种方法,经过测试后发现项目运行速度会被拖慢,所以选用的第二种方法。
二、调用Echarts

//vue文件
<div class="echarts">
//ref 被用来给DOM元素或子组件注册引用信息,想要在Vue中直接操作DOM元素,就必须用ref属性进行注册
<div class="chart" ref="myEchartPillar" >
</div>
<div class="chart" ref="myEchartLine" >
</div>
</div>
<script>
export default {
//渲染的图表的方法放在mounted(),因为mounted()在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作
mounted() {
this.getPillar();
this.getLine();
},
methods:{
// 渲染柱形图表
getPillar() {
let that = this;
// 基于准备好的dom(myEchartPillar),初始化echarts实例
let myChart = echarts.init(this.$refs.myEchartPillar);
//指定图表的配置项和数据,绘制图表
myChart.setOption({
// 图表名称
title: {
text: "柱形统计图"
},
// 图表颜色
color: ["#6284d3"],
// 提示
tooltip: {
//触发类型,axis:坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效,默认为直线,可选为:'line' | 'shadow'
type: "shadow"
}
},
grid: {
show: true,
//grid 组件离容器左侧的距离。
left: "3%",
//grid 组件离容器右侧的距离。
right: "4%",
//grid 组件离容器下侧的距离。
bottom: "3%",
//grid 区域是否包含坐标轴的刻度标签。true这常用于『防止标签溢出』的场景,标签溢出指的是,标签长度动态变化时,可能会溢出容器或者覆盖其他组件。
containLabel: true,
// 网格背景色,此配置项生效的前提是,设置了 show: true
backgroundColor: "#E7F1F5"
},
//直角坐标系 grid 中的 x 轴
xAxis: [
{
//'category' 类目轴
type: "category",
//坐标轴名称
name: "时间",
//坐标轴名称显示位置
nameLocation: "end",
//坐标数据
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
//坐标轴刻度相关设置
axisTick: {
// 为 true 可以保证刻度线和标签对齐
alignWithLabel: true
},
//坐标轴名称与轴线之间的距离
nameGap: 2
}
],
//直角坐标系 grid 中的 y 轴
yAxis: [
{
//'value' 数值轴,适用于连续数据
type: "value",
//坐标轴名称
name: "使用量(次数)",
//坐标轴的标签是否响应和触发鼠标事件,默认不响应
triggerEvent: true
}
],
//系列列表。每个系列通过 type 决定自己的图表类型
series: [
{
//系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列
name: "柜子使用量",
//类型为柱状/条形图
type: "bar",
//柱条的宽度,不设时自适应。支持设置成相对于类目宽度的百分比。
barWidth: "60%",
//图形上的文本标签,可用于说明图形的一些数据信息
label: {
normal: {
//是否显示标签
show: true,
//通过相对的百分比或者绝对像素值表示标签相对于图形包围盒左上角的位置
position: "top"
}
},
//系列中的数据内容数组
data: [1, 3, 5, 7, 9, 11, 13]
}
]
});
//解决自适应
setTimeout(function() {
window.addEventListener("resize", () => {
myChart.resize();
});
}, 500);
},
// 获取折线图
getLine() {
let that = this;
let myChart = echarts.init(this.$refs.myEchartLine);
myChart.setOption({
title: {
text: "折线统计图"
// text: that.$t("profitChart.Revenuechart")
},
color: ["#6284d3"],
tooltip: {
trigger: "axis",
formatter: "时间 : {b}<br/>收益 : {c}元",
axisPointer: {
type: "line"
}
},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true
},
xAxis: [
{
type: "category",
name: "日期",
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
boundaryGap: false,
axisTick: {
alignWithLabel: true
},
nameGap: 2
}
],
yAxis: [
{
type: "value",
name: "金额(元)"
}
],
series: [
{
name: "柜子使用量",
//类型为折线图
type: "line",
//折线样式
lineStyle: {
normal: {
//宽度
width: 3,
//阴影颜色
shadowColor: "rgba(0,0,0,0.1)",
// 阴影的模糊范围
shadowBlur: 10,
// 阴影的纵向位移量
shadowOffsetY: 10
}
},
areaStyle: {
normal: {
// 折线范围内的背景色
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "#E7F1F5"
},
{
offset: 1,
color: "#E7F1F5"
}
])
}
},
data: [1, 3, 5, 7, 9, 11, 13]
}
]
});
setTimeout(function() {
window.addEventListener("resize", () => {
myChart.resize();
});
}, 500);
},
}
}
<script>

柱形图表示例图:

 
柱形统计图.jpg

折线图表示例图:

 
折线统计图.jpg

注意事项:
有时候echarts会不显示,这个时候要注意是否有以下问题。
1.创建实例时,最好用let声明;
let myChart = echarts.init(this.$refs.myEchartPillar);
2.容器宽高不能设置百分比,要设置具体的数值;
<div style="height:790px;width:400px;" ref="myEchartPillar" ></div>
3.考虑dom有没有渲染;
渲染的图表的方法放在mounted()或updated()中,不要放在created()中。

饼图、散点图等图表用法与上类似,感兴趣的小伙伴儿可以写写例子,感受一下图表的神奇之处(~ ̄▽ ̄)~。

vue使用Echarts图表的更多相关文章

  1. vue 引入 echarts 图表 并且展示柱状图

    npm i echarts -S 下载 echarts 图表 mian.js 文件 引入图表并且全局挂载 //echarts 图表 import echarts from 'echarts' Vue. ...

  2. 在vue中使用echarts图表

    在vue中使用echarts图表   转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9815290.html 安装vue依赖 使用npm npm instal ...

  3. vue table中使用多选的问题(翻页后如何保存已选项),联动echarts图表实现流量监控

    流量监控项目需求: 根据表格数据,添加多选功能,默认全选,根据已选项更新图表视图 1.表格需要多选 2.要联动图表,所以关键是要利用表格多选的触发回调函数 vue table中使用多选: 很简单,只需 ...

  4. 在内网中 vue项目添加ECharts图表插件

    原文地址:https://www.cnblogs.com/aknife/p/11753854.html 最近项目中要使用到图表 但是项目在内网中无法直接使用命令安装 然后我在外网中弄个vue的项目(随 ...

  5. Vue自定义标签页,并且在其中渲染Echarts图表

    目录 一.需求说明 二.标签页功能实现 一.需求说明 1.点击标签按钮切换不同的echarts图表,考虑用Ant Design Vue,但是其样式无法自定义 2.div的整体布局样式使用tailwin ...

  6. vue中添加Echarts图表的使用,Echarts的学习笔记

    项目中需要使用一些折线图.柱状图.饼状图等等,之前使用过heightCharts(关于heightCharts请看我的另一篇 http://www.cnblogs.com/jasonwang2y60/ ...

  7. vue如何循环同一个echarts图表

    因为我们知道echarts图表需要一个ID节点,所以我们循环echarts同一个图表时要考虑ID节点变化问题.废话不多说,直接上demo效果. 这里有一位分析师在不同的模拟组合,这时需求要在dialo ...

  8. Vue使用vue-echarts图表

    vue-echarts和echarts的区别: vue-echarts是封装后的vue插件, 基于 ECharts v4.0.1+ 开发,依赖 Vue.js v2.2.6+,功能一样的只是把它封装成v ...

  9. vue-cli ——解决多次复用含有Echarts图表组件的问题

    在vue项目里,组件复用是一件很开心的事,可以节省很多时间去排版,达到事半功倍效果,但是昨晚在vue-cli项目里组件复用时发现基于Echarts图表的组件不能够复用,昨晚捯饬了很久,终于还是解决了这 ...

随机推荐

  1. Python——方法

    方法是类或者对象行为特征的抽象,方法其实也是函数,它的定义方式.调用方式与函数都很相似. 一.类调用实例方法 先来看一段代码: # 定义全局空间test函数 def test(): print ('全 ...

  2. PAT(B) 1010 一元多项式求导(Java)

    题目链接:1010 一元多项式求导 代码 /** * Score 25 * Run Time 94ms * @author wowpH * @version 1.1 */ import java.ut ...

  3. phc-winner-argon2、argon2-cffi安装使用方法

    Argon2 is a password-hashing function created by by Alex Biryukov, Daniel Dinu, and Dmitry Khovratov ...

  4. Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化

    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/BWpy3F-nEKXCdVXmY3GYZg 当然还有更多R语言,生物信息学相关知识...

  5. kong命令(三)route

    介绍 route 是一套匹配客户端请求的规则.每个route都会匹配一个service,每个service可定关联多个route. 可以说service:route=1:n.一对多的关系.每个匹配到r ...

  6. windows开机自动执行bat脚本启动cmd命令窗口并执行命令,最后自动关闭cmd命令窗

    先说bat脚本吧,随便在桌面建一个文本文档,在里面写脚本,内容是,先启动cmd命令窗,并执行一个命令,最后自动关闭cmd窗,如下: ---------------------------------- ...

  7. CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server

    CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server Severity: Medium Vendor: ...

  8. Ubuntu的apt-get代理设置

    三种方法 -o选项 # sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8080/" update 配置文件 # vi ...

  9. CentOS linux7 设置开机启动服务

    常用命令 描述                                 旧命令  新命令 使服务自动启动          chkconfig --level 3 http on  syste ...

  10. 深度学习_1_Tensorflow_2_数据_文件读取

    tensorflow 数据读取 队列和线程 文件读取, 图片处理 问题:大文件读取,读取速度, 在tensorflow中真正的多线程 子线程读取数据 向队列放数据(如每次100个),主线程学习,不用全 ...