echarts的高级使用

一、显示相关

1.主题

1)内置主题

  • echarts中默认内置了两套主题:light 和dark

  • 怎么使用:在初始化对象方法init中可以指明

    var chart=echarts.init(dom,‘light’)

    var chart=echarts.init(dom,‘dark’)

     // init方法有两个参数,第一个参数代表dom节点,第二个参数代表需要使用哪一套主题
     // 默认内置了两套主题,light和dark
     var mCharts=echarts.init(document.querySelector('div'),'light')
    

2)自定义主题

Snipaste_2022-07-28_10-53-46

  • 在主题编辑器中编辑主题 (echarts官网中的主题下载)

  • 然后下载主题,是一个js文件

  • 使用script标签引入主题js文件

  • 在init方法中使用主题

    init中第二个参数的名字并不是主题文件的名字,而是主题文件中定义的registerTheme中定义的主题名

     var mCharts=echarts.init(document.querySelector('div'),'itcast')
     //引入主题js文件之后,init中的第二个参数就多了一个选项
     //这里第二个参数的名字取决于主题js文件中的代码
    

image-20220728110423146

2.调色盘

1)调色盘

它是一组颜色,图形、系列会自动从其中选择颜色,调色盘的作用遵循就近原则局部>全局>主题,我自己的理解是,这里的就近原则是谁离series配置越近就显示哪种颜色配置。

  • 主题调色盘

    使用自定义主题的时候,在下载的自定义主题js文件中会设置这个调色盘,会在registerTheme的第二个参数中设置color数组

    image-20220728182857233

  • 全局调色盘

    全局调色盘中设置color会覆盖主题调色盘中的颜色设置

    option:[
       color:['red','green','blue',]
    ]
    
  • 局部调色盘

    局部调色盘会覆盖全局调色盘中的颜色设置

    series:[
      {
        type:'bar',
        color:['red','green','blue',]
      }
    ]
    

2)颜色渐变(在series中设置itemStyle)

  • 线性渐变(按照一个方向进行颜色变化)

    itemStyle:{
    	color:{
    		type:'linear',   //渐变的类型是线性的
    		x:0,    
    		y:0,
    		x2:0,
    		y2:1,  //以上四个表示渐变的方向,这些数值指的都是相对的数值
    		colorStops:[{
    			offset:0,color:'red'   //0%处的颜色
    		},{
    			offset:1,color:'blue'  //100%处的颜色
    		}],
    		globalCoord:false  //缺省为false
    	}
    }
    

    image-20220728191818296

  • 径向渐变(根据一个点向四周进行颜色变化)

  itemStyle:{
  	color:{
  		type:'radial',
  		x:0.5,
  		y:0.5,
  		r:0.5,  //xy指的是径向渐变的圆心坐标,r指的是半径,这些数值指的都是相对数值
  		colorStops:[{
  			offset:0,color:'red'   //0%处的颜色
  		},{
  			offset:1,color:'blue'   //100%处的颜色
  		}],
  		global:false   //缺省为false
  	}
  }

3.样式

以下两种样式,优先级高,会覆盖主题中、调色盘中的效果

1)直接样式(图表在正常情况下的显示)

​ 是这些style配置,itemStyle(控制某一区域的样式)、textStyle(控制文本样式)、lineStyle、areaStyle(这两个针对于折线图和雷达图)、label

2)高亮样式(鼠标滑过某个区域这块区域会高亮显示)

在emphasis中包裹itemStyle、textStyle、lineStyle、areaStyle,label

//在series中设置
data:[
             {
                name:'淘宝',
                value:21000,                     
                
                emphasis:{
                      itemStyle:{//k控制淘宝这一区域的样式
                      color:'pink'
                   },
                  label:{
                          color:'green'
                 },
                }
            },
   ]

4.自适应

当浏览器大小发生变化的时候,想让图表也能随之发生适配变化

1)监听窗口大小变化事件

2)在事件处理函数中调用ECharts实例对象的resize即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIjwEfhl-1659870548653)(…/…/Library/Application Support/typora-user-images/image-20220802150116719.png)]

//这个代码写在setOption之后即可
window.onresize=function(){
    mCharts.resize()
  }
//或者直接这样简写   window.οnresize=mCharts.resize

二、动画的使用

1.加载动画(在获取数据的过程中ECharts呈现出来的比较友好的效果)

ECharts中已经内置好了加载数据的动画,我们在使用的时候只需要在合适的时机选择显示或者隐藏

  • 显示加载动画

    mCharts.showLoading()
    
  • 隐藏加载动画

    mCharts.hideLoading()
    

​ 例如一个散点图中,需要使用jQuery来获取JSON数据,那么我们在获取JSON数据之前可以开启加载动画,当服务器数据获取成功之后就隐藏加载动画

  var mCharts=echarts.init(document.querySelector('div'))
    //z在获取数据之前,显示加载动画
    mCharts.showLoading() 

    // 去data文件夹中获取JSON数据
    $.get('data/test_data.json',function(ret){
        // 当服务器数据获取成功之后要隐藏加载动画
        mCharts.hideLoading()
    }

2.增量动画

增量动画就是,当图表已经展示出来之后,这个时候图表中的数据发生变化,这时图表中因数据产生变动而产生的动画就称为增量动画。

  • 增量动画的实现方式

    mCharts.setOption

    所有数据的更新都必须要通过setOption实现,不用考虑数据到底产生了哪些变化,ECharts会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。

    setOption可以设置多次, 新的option和旧的option, 它们之间的关系并不是相互覆盖的关系,而是相互整合的关系, 我们在设置option的时候,只需要考虑到变化的部分就可以。

     <button id="modify">修改数据</button>
     <button id="add">增加数据</button>
     <script>
            var mCharts=echarts.init(document.querySelector('div'))
            var xDataArr=['丁程鑫','马嘉祺','张真源','宋亚轩','贺峻霖','严浩翔','刘耀文','林彦俊']
            var yDataArr=[88,92,63,77,94,80,72,86]
            var option={
                xAxis:{
                    type:'category',
                    data:xDataArr
                },
                yAxis:{
                    type:'value',
                },
                series:[
                    {
                        type:'bar',
                        data:yDataArr,
                        markPoint:{
                            data:[
                                {type:'max',name:'最大值'},
                                {type:'min',name:'最小值'}
                            ]
                        },
                        markLine:{
                            data:[
                                {type:'average',name:'平均值'},
                              
                            ]
                        }
                    }
                ]
            }
            mCharts.setOption(option)
    				
            //修改数据
            var btnModify=document.querySelector('#modify')
            btnModify.onclick=function(){
                var newYDataArr=[68,32,99,77,94,80,72,86]
                // setOption可以设置多次
                // 新的option和旧的option   它们之间的关系并不是相互覆盖的关系,而是相互整合的关系
                // 我们在设置option的时候,只需要考虑到变化的部分就可以
                var option={
                   series:[
                    { 
                        data:newYDataArr,
                    }
                ]
            }
            // 这个增量动画中的setOption括号中的option不一定要包含全部的配置,只需要配置变化的内容即可
            mCharts.setOption(option)
            }
    				
       			//增加数据
            var btnAdd=document.querySelector('#add')
            btnAdd.onclick=function(){
                xDataArr.push('王琳凯')
                yDataArr.push(90)
                var option={
                    xAxis:{
                        data:xDataArr
                    },
                   series:[
                    {
                        data:yDataArr
                    }
                   ]
                }
                mCharts.setOption(option)
            }
        </script>
    

3.动画的配置

1)动画配置项

  • 开启动画 animation: true

    设置在option中,默认是true,控制动画是否开启

  • 动画时长 animationDuration

    接收普通的数值

    animationDuration:3000,  // 毫秒   动画时长
    

    接收回调函数

    //设置在option中
    animationDuration:function(arg){  //可以控制对不同元素使用不同的动画时长,这里的arg参数代表的有三类元素
       // console.log(arg);
       return 2000*arg
     },
    

    image-20220802221534656

  • 缓动动画 animationEasing

    设置在option中,还有别的效果,见官网

     animationEasing:'bounceOut',  //linear均匀的  bounceOut回弹的
    
  • 动画阈值 animationThreshold

    指的是单种形式的元素数量大于这个阈值时会关闭动画

    animationThreshold:7,   // 动画阈值,这里设置为7,动画会被关闭,因为这个柱子这第三类元素有8个,超过了阈值
    

三、交互API

1.全局echarts对象和echartsInstance对象

1)全局echarts对象

全局echarts对象是引入echarts.js文件之后就可以直接使用的,这个全局echarts对象是在引入的js文件中定义好的

  <script>
    //这里的echarts就是全局echarts对象,而mCharts就是echartsInstance对象(echarts的实例对象)
        var mCharts=echarts.init(document.querySelector('div'))
  </script>  

2)echartsInstance对象

echartsInstance对象是通过echarts.init方法调用之后得到的,也就是echarts的实例对象

image-20220807105946560

2.全局echarts对象中常见的交互API(常见的方法)

1)init

​ 通过这个方法能够初始化echarts实例对象

​ 还可以使用主题(配置在第二个参数中)

2)registerTheme

​ 注册主题,在自定义主题中使用过,只有注册过的主题才能够在init方法中使用该主题

3)registerMap

​ 注册地图数据

$.get('json/map/china.json',function(data){
        echarts.registerMap('china',data);
});

​ geo组件使用地图数据

var option={
 geo: {
          type: 'map',
          map: 'china',  // 这个china必须要和registerMap中的第一个参数保持一致
      }
}

4)connect

  • 一个页面中可以有多个独立的图表

  • 每一个图表对应一个ECharts实例对象

  • connect可以实现多图关联,传入联动目标为ECharts实例对象,支持数组。

    var mCharts = echarts.init(document.querySelector('#div1'))
    ...
    var mCharts2 = echarts.init(document.querySelector('#div2'))
    ...
    echarts.connect([mCharts,mCharts2])
    

将多个图表关联之后的变化:

  • 保存图片的时候会自动将这几个图表拼接在一起

  • 刷新按钮、重置按钮、提示框联动、图例选择、数据范围修改等等会出现联动的效果

3.echartsInstance对象中常见的交互API(常见的方法)

1)setOption方法

  • 设置或修改图表实例的配置项以及数据
  • 可以多次调用setOption方法,会产生新旧option,它们之间的关系是合并整合的关系而不是覆盖的关系

2)resize方法

  • 能够用于图表自适应,重新计算和绘制图表

  • 一般和window对象的resize事件结合使用,先要监听window窗口大小变化

 // 监听Window的窗口大小变化的事件
          window.onresize=function(){
              // console.log('window.onresize...');
              //调用echarts实例对象的resize方法
              mCharts.resize()
          }
          // 或者   window.οnresize=mCharts.resize

3)on/off方法

​ 一般用于绑定或者解绑事件处理函数(两大类型事件:鼠标事件和Echarts事件)

  • 鼠标事件

    常见的鼠标事件:‘click’、‘dblclick’(双击事件)、‘mousedown’、‘mousemove’、'mouseup’等

   mCharts.on('click',function(arg){
              //这里的arg是点击区域的具体信息
              console.log(arg);
          })
  
  //解绑事件
   mCharts.off('click')

事件参数arg:和事件相关的数据信息

  • ECharts事件

    在官网中的event中有具体的相关事件

    常见的事件:legendselectchanged、‘datazoom’、‘pieselectchanged’、'mapselectchanged’等

mCharts.on('legendselectchanged',function(arg){
            console.log(arg);
        })
//在打印出来的arg中被筛选掉的图例,显示为false,其余为true

事件参数arg:和事件相关的数据信息

4)dispatchAction方法

触发某些行为,这里的行为指的是使用js代码来模拟用户的行为,让图表做出适当的反应

在官方文档的action中,有可以被触发的行为

$('#btn1').click(function(){
            //模拟用户的行为
            mCharts.dispatchAction({
            type:'highlight',  //事件类型
            seriesIndex:0,  //图表索引
            dataIndex:1    //图表中哪一项高亮
        })
             mCharts.dispatchAction({
            type:'showTip',
            seriesIndex:0,
            dataIndex:1
        })
        })

5)clear方法

  • 清空当前实例,会移除实例中所有的组件和图表

     $('#btn2').click(function(){
                mCharts.clear()
            })
    
  • 清空之后可以再次setOption

     $('#btn3').click(function(){
       //重新设置option
                mCharts.setOption(option)
            })
    

6)dispose方法

  • 销毁实例
  • 和clear方法最大的区别是:dispose方法销毁实例之后不能够再次setOption将图表重新显示,也就是销毁后实例无法再被使用
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 可以很方便地集成 Echarts,以下是一个简单的例子: 1. 安装 Echarts:可以通过 npm 安装 Echarts,命令如下: ``` npm install echarts --save ``` 2. 在 Vue 中引入 Echarts:在组件中使用 Echarts,需要在 Vue 中引入 Echarts,可以在 `main.js` 中全局引入: ```javascript import echarts from 'echarts' Vue.prototype.$echarts = echarts ``` 3. 在组件中使用 Echarts:在组件中使用 Echarts,可以通过在 `template` 中添加一个 `div` 元素作为图表容器,然后在 `mounted` 钩子中使用 `this.$echarts` 创建图表实例并设置相关配置。 ```vue <template> <div ref="chart" style="width: 100%; height: 500px;"></div> </template> <script> export default { name: 'EchartsDemo', mounted() { const chart = this.$echarts.init(this.$refs.chart) chart.setOption({ // 图表配置项 xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line' }] }) } } </script> ``` 这样就可以在 Vue 中使用 Echarts 了。当然,Echarts 还有很多高级的功能和配置项,可以查看 Echarts 的官方文档进行学习和实践。 ### 回答2: Vue使用echarts的过程主要分为以下几个步骤: 1. 引入echarts库:在Vue项目的入口文件中,使用import语句引入echarts库。例如:`import echarts from 'echarts'`。 2. 创建echarts实例:在Vue组件中,可以通过在`mounted`生命周期钩子函数中创建echarts实例。例如: ``` mounted() { this.initChart(); }, methods: { initChart() { const chartDom = document.getElementById('chart'); this.chartInstance = echarts.init(chartDom); } } ``` 3. 定义配置项:在Vue组件中,可以定义echarts的配置项,包括图表类型、标题、数据等。例如: ``` data() { return { chartOptions: { title: { text: '柱状图示例' }, xAxis: { data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: {}, series: [{ type: 'bar', data: [10, 20, 30, 40, 50] }] } } } ``` 4. 渲染图表:通过调用echarts实例的`setOption`方法,将配置项应用到echarts实例中,并渲染出图表。例如: ``` mounted() { // ... this.renderChart(); }, methods: { renderChart() { this.chartInstance.setOption(this.chartOptions); } } ``` 5. 监听窗口变化:在Vue组件中,可以通过监听窗口变化的事件,使图表能够自适应窗口大小变化。例如: ``` mounted() { // ... window.addEventListener('resize', this.resizeChart); }, methods: { resizeChart() { this.chartInstance.resize(); } } ``` 通过以上步骤,我们就可以在Vue项目中使用echarts来进行数据可视化的展示了。 ### 回答3: Vue使用Echarts是通过将ECharts引入Vue项目来实现数据可视化的需求。Echarts是一款基于JavaScript的数据可视化图表库,具有丰富的图标类型和交互功能。 首先,我们需要在Vue项目中安装Echarts。可以使用npm或yarn命令运行以下安装命令: ``` npm install echarts ``` 或者 ``` yarn add echarts ``` 安装完成后,我们需要在需要使用Echarts的组件中引入Echarts库: ```javascript import echarts from 'echarts' ``` 接下来,我们可以在Vue组件的methods中定义一个渲染函数,在该函数中使用Echarts创建一个图表实例,并且传入数据和配置参数: ```javascript methods: { renderChart() { // 获取DOM节点 const chartContainer = this.$refs.chartContainer; // 创建图表实例 const chart = echarts.init(chartContainer); // 设置图表配置 const option = { // 配置项 }; // 设置数据 const data = { // 数据项 }; // 渲染图表 chart.setOption(option); } } ``` 最后,在Vue组件的mounted钩子中调用渲染函数,使图表能够在Vue组件加载后进行渲染: ```javascript mounted() { this.renderChart(); } ``` 这样就可以在Vue组件中使用Echarts实现数据可视化,根据自己的需求来修改图表的配置和数据项,以展示出符合要求的图表效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值