vue中使用 echarts3.0 或 echarts2.0 (模拟迁徙图,折线图)
一、echarts3.0(官网: http://echarts.baidu.com/)
首先通过npm安装echarts依赖,安装的为3.0版本
npm install echarts -s
也可以使用淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install echarts -s
引入的方式有两种:
1、main.js中全局引入
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
然后在组件中通过 this.$echarts.init(document.getElementById('your_div')) 来初始化
2、只应用基本包,加快加载速度
在需要使用echarts的组建中引入:
let echarts = require('echarts/lib/echarts')
然后通过 echarts.init(document.getElementById('your_div')) 来初始化
使用的话就比较简单,直接将官方实例封装一个为方法,在mounted中调用即可。 二、 echarts2.0(官网: http://echarts.baidu.com/echarts2/)
1、引入
到官网下载echarts2.0的包echarts-all.js,放到static下面,然后在index.html中引用:
<script type="text/javascript" src="./static/echarts-all.js"></script>
2、使用
直接封装一个方法,在mounted中调用,通过 echarts.init(document.getElementById('your_div')) 来初始化 三、可能适合你的做法
1、便于数据变更的处理方法是:
首先在 data 中定义全局变量
data(){
return{
myChart: null,
option: []
}
}
然后在 mounted 中将获取到的dom节点赋值给myChart
this.myChart = echarts.init(document.getElementById('myChart'))
在 methoes 中封装一个方法 drawLine()
methods: {
drawLine (option) {
this.myChart.setOption({
//此处调用需要的图表参数及方法
})
}
}
在 watch 中监听接口数据以及将数据格式化后传给图表参数,并初始化图表
watch: {
yourData: {
deep: true,
handler (v, ov) {
if (v.length > 0) {
//格式化数据并传给图表参数option
}
this.myChart.clear();// 重绘之前清理画布
this.drawLine(this.option)
}
}
}
2、假如你使用了折线图,需要实现一个鼠标点击图表调用接口,并且将数据自定义渲染的功能,可以使用如下做法:
tooltip: {
trigger: 'axis',
triggerOn: 'click',//鼠标点击时触发
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow'// 默认为直线,可选为:'line' | 'shadow'
},
formatter: function (params, ticket, callback) {
var content = '';
for (var i = 0; i < params.length; i++) {
if (params[i].name) {
content += "<div class='tootipBox'><div class='tootipDate'>" + params[i].name + "</div>";
break;
}
}
for (var i = 0, key = {}; i < params.length; i++) {
key = params[i];
if (typeof key.value === 'undefined' || key.value === '-'){
key.value = '暂无';
}
content += "<div class='tootipContent' style='border-bottom: solid 1px #fff;'><i style='background-color: "
+ key.color + " '></i> "
+ key.seriesName
+ " : " + key.value + "</div>";
}
that.$store.dispatch('youInterfaceMethod', param).then((data, index) => {
if (data && data.code == 1) {
that.appDataArr = data.data
if (data.data.length > 0) {
for (var i = 0; i < data.data.length; i++) {
content += '<div class="tooltip">' + that.item[i].str '</div>';
}
} else {
content += '<div class="tooltip">' + 'Loading...' + '</div>';
}
content += '</div>';
callback(ticket, content)
}
})
return "Loading";
}
} 3、假如你使用了模拟迁徙图(本例子是echarts2.0版本的方法),想把接口返回的但是在 geoCoordMap 里找不到的城市,在地图上显示成未知,可以使用如下做法:
首先,在 geoCoordMap 里插入一条数据,名称为 "未知",坐标自定义;
然后,data 中定义变量:
data(){
return{
total: 0,
SHData: [],
SHSCircleData: [],
myChart: null,
valueArr: [],
maxNum: 0,
unknowArea: {},
unknowCount: 0
}
}
然后在 watch 中格式化数据:
watch: {
yourData: {
deep: true,
handler (v, ov) {
this.total = 0
this.SHData = []
this.SHSCircleData = []
this.unknowArea = {}
this.unknowCount = 0
if (v.length > 0) {
v.forEach((item) => {
this.total = this.total + item.count
if (item.count === 0) return
if (item.city == '未知' || !this.geoCoordMap.hasOwnProperty(item.city)) {
// 若item.city '未知' 或者在对象 'geoCoordMap' 中不存在
this.unknowCount += item.count
this.unknowArea = {name: '外太空', value: this.unknowCount}
return;
}
this.SHData = this.SHData.concat([[{name: '上海'}, {name: item.city, value: item.count}]])
this.SHSCircleData = this.SHSCircleData.concat([{name: item.city, value: item.count}])
})
this.SHData = this.SHData.concat([[{name: '上海'}, this.unknowArea]])
this.SHSCircleData = this.SHSCircleData.concat([this.unknowArea])
}
this.myChart.clear();// 重绘之前清理画布
this.myChart.setOption(this.option(this.SHData, this.SHSCircleData))
}
}
} methods封装方法:
option(SHData, SHSCircleData){
return {
//调用方法及参数
//特别提出一个,关于颜色的,取返回数据的总数除以数组长度然后再取整,会让颜色一直都像放烟花
dataRange: {
show: true,
min: 0,
max: parseInt(this.total/this.SHData.length),
calculable: true,
color: ['#ff3333', 'orange', 'yellow', 'lime', 'aqua'],
textStyle: {
color: '#fff'
}
}
}
}
mounted调用:
mounted () {
this.getOnlineUser()//数据接口调用
setInterval(() => {//隔30s轮询一次接口
this.getOnlineUser()
}, 30000)
this.myChart = echarts.init(document.getElementById('myChart'))
} THE END.
vue中使用 echarts3.0 或 echarts2.0 (模拟迁徙图,折线图)的更多相关文章
- 在vue中继续使用layer.js来做弹出层---切图网
layer.js是一个方便的弹出层插件,切图网专注于PSD2HTML等前端切图多年,后转向Vue开发.在vue开发过程中引入layer.js的时候遇到了麻烦.原因是layer.js不支持import导 ...
- MVC中使用Echart后台加载数据 实现饼图、折线图、全国地图数据,单击双击事件等
@{ Layout = null; } @if (false) { <script src="~/Js/jquery-easyui-1.5/jquery.min.js"> ...
- vue中使用动画vue-particles实现背景粒子酷炫效果
先来看我做的效果 我这个是用的背景色加上这个粒子效果实现的demo 平时我们做项目的话会添加背景图片这些,可能更加好看 看我的实现步骤 cnpm install -g vue-cli vue init ...
- vue 中使用echarts
前言:在vue2.0中使用百度echarts有三种解决方案. 一.原始方法直接使用 这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化.很麻烦. < ...
- echarts中折线图切换为数据视图(表格布局)表头无法对齐解决方法
dataView: { show: true, readOnly: true, option ...
- vue.js学习:1.0到2.0的变化(区别)
一.生命周期 1.1.0的生命周期: 周期 解释 init 组件刚刚被创建,但Data.method等属性还没被计算出来 created 组件创建已经完成,但DOM还没被生成出来 beforeComp ...
- vue之页面缓存问题(基于2.0)
为什么会有这篇文章 在vue2.0中出现了列表页面是每次都重新加载数据,但是详情页面却只在第一次加载的时候调用数据,如果返回到列表再进入详情那么页面是不会重新渲染页面. 1 用vue-router 重 ...
- 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- cxGRID中的字段怎么能以0.00的格式显示
CXGRID中的字段如何能以0.00的格式显示在CXGRID中如何让字段能以0.00的格式显示,我的字段是FLOAT类型,满意的马上给分! ------解决方案-------------------- ...
随机推荐
- Python学习:2.Python集成学习环境(IDE)Pycharm的安装配置以及激活方
一.下载Pycharm Pycharm作为Python现在最流行的集成开发环境,我们今后的Python的学习也就使用Pycharm进行,那今天我们就讲一下Pycharm的安装配置以及激活 1.我们首先 ...
- 如何防御网站被ddos攻击 首先要了解什么是流量攻击
什么是DDOS流量攻击?我们大多数人第一眼看到这个DDOS就觉得是英文的,有点难度,毕竟是国外的,其实简单通俗来讲,DDOS攻击是利用带宽的流量来攻击服务器以及网站. 举个例子,服务器目前带宽是100 ...
- hdu 1394 Minimum Inversion Number(线段树)
参考:http://blog.sina.com.cn/s/blog_691ce2b70101ldmm.html https://blog.csdn.net/wiking__acm/article/de ...
- python2.7练习小例子(十四)
14):题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 程序分析:程序分析:(a>b)?a:b这 ...
- AR技术介绍(Located in Android)
一,什么是AR 在说AR技术之前,先来说说VR. 虚拟现实(VR:Virtual Reality)是采用以计算机技术为核心的技术,生成逼真的视,听,触觉等一体化的虚拟环境,用户借助必要的设备以自然的方 ...
- Mysql 启动运行
MYSQL默认端口:3306用户: root 也可自己添加用户启动数据库服务名: MYSQL (在安装的时候会设置) 在开始菜单栏->附件->右键命令提示符->以管理员身份运行: ...
- 【JDK配置原创】JDK(JRE)环境变量配置原理 --费元星
已经配置了很多次jdk了,每次都是安装网上的教程配的,今天突然想了解了解原理了,整理一下! 参考贴( http://blog.csdn.net/wkupaochuan/article/details/ ...
- 【连载】Maven系列(三) 进阶
相关文章: 1.<用起来超爽的Maven——入门篇> 2.<用起来超爽的Maven——进阶篇> 一.Maven坐标: Maven世界拥有大量需要构建jar文件,我们需要找一个用 ...
- JS 客户端检测
能力检测 能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力. 能力检测需要注意两点: 先检测达成目的的最常用的特性.因为先检测最常用的特性可以保证代码最优化,因为在多数情况下都可以避免测试多个 ...
- Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)
作者:Antonio Leiva 时间:Mar 21, 2017 原文链接:https://antonioleiva.com/operator-overload-kotlin/ 就像其他每种语言一样, ...