一、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 (模拟迁徙图,折线图)的更多相关文章

  1. 在vue中继续使用layer.js来做弹出层---切图网

    layer.js是一个方便的弹出层插件,切图网专注于PSD2HTML等前端切图多年,后转向Vue开发.在vue开发过程中引入layer.js的时候遇到了麻烦.原因是layer.js不支持import导 ...

  2. MVC中使用Echart后台加载数据 实现饼图、折线图、全国地图数据,单击双击事件等

    @{ Layout = null; } @if (false) { <script src="~/Js/jquery-easyui-1.5/jquery.min.js"> ...

  3. vue中使用动画vue-particles实现背景粒子酷炫效果

    先来看我做的效果 我这个是用的背景色加上这个粒子效果实现的demo 平时我们做项目的话会添加背景图片这些,可能更加好看 看我的实现步骤 cnpm install -g vue-cli vue init ...

  4. vue 中使用echarts

    前言:在vue2.0中使用百度echarts有三种解决方案. 一.原始方法直接使用 这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化.很麻烦. < ...

  5. echarts中折线图切换为数据视图(表格布局)表头无法对齐解决方法

                dataView: {               show: true,               readOnly: true,               option ...

  6. vue.js学习:1.0到2.0的变化(区别)

    一.生命周期 1.1.0的生命周期: 周期 解释 init 组件刚刚被创建,但Data.method等属性还没被计算出来 created 组件创建已经完成,但DOM还没被生成出来 beforeComp ...

  7. vue之页面缓存问题(基于2.0)

    为什么会有这篇文章 在vue2.0中出现了列表页面是每次都重新加载数据,但是详情页面却只在第一次加载的时候调用数据,如果返回到列表再进入详情那么页面是不会重新渲染页面. 1 用vue-router 重 ...

  8. 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  9. cxGRID中的字段怎么能以0.00的格式显示

    CXGRID中的字段如何能以0.00的格式显示在CXGRID中如何让字段能以0.00的格式显示,我的字段是FLOAT类型,满意的马上给分! ------解决方案-------------------- ...

随机推荐

  1. HDSF读写文件

    HDFS 读取文件 HDFS的文件读取原理,主要包括以下几个步骤: 1.首先调用FileSystem对象的open方法,其实获取的是一个DistributedFileSystem的   实例. 2.D ...

  2. Django自带后台使用配置

    参考官网地址:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ ,本文章值是介绍简单配置,如果需要详细内容可以查阅官方文档 自动管理界 ...

  3. Vue 服务器端渲染(一)

    什么是服务器端渲染(SSR)? Vue.js 是构建客户端应用程序的框架.默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM.然而,也可以将同一个组件渲染为服务器端的 HT ...

  4. Java学习笔记十一:Java中的方法

    Java中的方法 一:什么是方法: 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 学过C语言或者其他语言的应该都知道函数这个东西,在Java中,其实方法就是函数,只不过叫法不同,在 ...

  5. Java学习笔记八:Java的流程控制语句之循环语句

    Java的流程控制语句之循环语句 一:Java循环语句之while: 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...

  6. 【7-10 PAT】树的遍历

    给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行给出其后序遍历序列.第三 ...

  7. hdu 1394 Minimum Inversion Number(线段树)

    参考:http://blog.sina.com.cn/s/blog_691ce2b70101ldmm.html https://blog.csdn.net/wiking__acm/article/de ...

  8. 蓝牙技术(BlueTooth)——(一)

    一,概述 蓝牙是一种短距离的无线通信技术标准. 蓝牙协议分为4层,即核心协议层,电缆替代协议层,电话控制协议层,和      采纳的其它协议层. 这4中协议中最重要的是核心协议.蓝牙的核心协议包括基带 ...

  9. CSP201512-1: 数位之和

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...

  10. 定时爬虫抓当日免费应用:Scrapy + Tkinter + LaunchControl

    花了个周末学了下Scrapy,正好一直想买mindnode,于是顺手做了个爬虫,抓取爱范儿每天的限免应用信息. Thinking 大概思路就是使用LaunchControl每天定时(比如早上9点50, ...