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. 【5号课堂】scratch制作电子生日贺卡

    贺卡在我国的使用由来已久,在古代,上层士大夫有用名帖互相问候的习俗 唐宋以后,贺卡的名称及功能有所进步,称为”门状“或“飞帖“,到了明清,又叫“红单“.“贺年帖“等等,听着名字就知功能越来越世俗化,文 ...

  2. JS 07 Dom

    DOM(Document Object Model): 结点的概念:整个文档就是由层次不同的多个节点组成,可以说结点代表了全部内容. 结点类型 1.元素结点 2.属性结点 3.文本结点   结点的注意 ...

  3. redis键的迁移操作

    1.redis单个实例内多库间的数据迁移操作 命令名称:move 语法:move key db 功能:将当前数据库的key移动到给定的数据库db当中.如果当前数据库(源数据库)和给定数据库(目标数据库 ...

  4. C#对象转换工具类

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  5. React/动态绑定class

    第一种 字符串拼接 <i className={["iconfont"+" "+item.icon]} ></i> 第二种 有判断条件的 ...

  6. C# 交换排序

    用交换排序的方式实现对int类型的数组arrays从小到大排序 思路: 第一步:一个长度为n的数组,把最小的放第一行,第二小的数字放第二行,,,, 0(0为数组的第一项) 第一小的数字 1      ...

  7. Oracle学习笔记——imp还原数据库

    1.     创建用户及指定用户名密码 create user [用户名] identified by [密码]; create user fskxjsxy  identified by fskxjs ...

  8. vue组件间的传值方式及方法调用汇总

    1.传值 a.父组件传子组件 方法一: 父页面: <myReportContent v-if="contentState==1" :paramsProps='paramsPr ...

  9. ES extended_stats 函数

    在进行ES聚合分析的时候,发现了一个非常有用的函数,extended_stats,可以对聚合的结果进行更近一步的分析 ,常见的 count sum avg  min max 等都可以一目了然 GET ...

  10. Centos 升级至 OpenSSH 8 rpm包制作

    背景 安全部门扫描系统漏洞,OpenSSH 7.9出现漏洞,需升级到8. 使用 rpmbuild 将源码包编译为 rpm包. yum install rpm-build zlib-devel open ...