echarts项目积累

按js文件或cdn导入

javascript 复制代码
 <script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>

在main.js中注册到全局的对象原型上

javascript 复制代码
Vue.prototype.$echarts = window.echarts

搭建echart模版

分拆option

分为数据,初始化,自适应三个方向

javascript 复制代码
<script>
export default {
  data () {
    return {
      chartInstance: null,
      allData: null
   }
 },
  mounted () {
    this.initChart()
    this.getData()
    window.addEventListener('resize', this.screenAdapter)
    this.screenAdapter()
 },
  destroyed () {
    window.removeEventListener('resize', this.screenAdapter)
 },
  methods: {
  // 初始化chart
    initChart () {
      this.chartInstance = this.$echarts.init(this.$refs.trend_ref)
      const initOption = {}
      this.chartInstance.setOption(initOption)
   },
    async getData () {
  // 获取服务器的数据, 对this.allData进行赋值之后, 调用updateChart方法更新图表
      this.updateChart()
   },
    updateChart () {
      // 处理图表需要的数据
      const dataOption = {}
      this.chartInstance.setOption(dataOption)
   },
   // 自适应chart
    screenAdapter () {
      const adapterOption = {}
      this.chartInstance.setOption(adapterOption)
      this.chartInstance.resize()
   }
 }
}
</script>

使用import命令来导入echarts

完全导入

javascript 复制代码
import * as echarts from 'echarts'

后面操作一样

按需导入

官网说明

引入核心包

javascript 复制代码
import * as echarts from 'echarts/core'

引入图标类型

javascript 复制代码
import { LineChart } from 'echarts/charts'

引入需要使用的组件

javascript 复制代码
import { GridComponent } from 'echarts/components' // 引入组件

引入渲染器

javascript 复制代码
import { CanvasRenderer } from 'echarts/renderers'

注册所有引入

javascript 复制代码
echarts.use([
  LineChart,
  GridComponent,
  CanvasRenderer
])

地图的使用步骤

首先获取json数据

init图表后,使用

javascript 复制代码
this.$echarts.registerMap('china', res)

创建地图实例

javascript 复制代码
const initOption = {
        geo: {
          type: 'map',
          map: 'china'
        }
      }

在option中用geo绑定map的实例

javascript 复制代码
 this.chartInstance.setOption(initOption)

创建图表

在地图中加入散点图

首先配置series

javascript 复制代码
updataChart () {
      const seriesArr = this.mapData.map(item => {
        return {
          type: 'effectScatter',
          rippleEffect: {
            // 涟漪大小
            scale: 5,
            brushType: 'stroke' // 涟漪效果
          },
          name: item.name,
          data: item.children,
          //   散点使用地图坐标
          coordinateSystem: 'geo'
        }
      })
      const dataOption = {
        legend: {},
        series: seriesArr
      }
      this.chartInstance.setOption(dataOption)
    },

定义type为effectScatter

data为[{name: xx, value: [维度,维度]},{ }, { }]格式 或 [[12, 14], [34, 50]]直接这样的格式(具体看官网)

使用coordinateSystem: 'geo'绑定地图,使用地图坐标

legend会自动匹配给定的name

javascript 复制代码
backChina () {
      const backOption = {
        geo: {
          map: 'china'
        }
      }
      this.chartInstance.setOption(backOption)
    },

对已有实例的图表只需要切换map就可以实现切换

相关推荐
San30.6 分钟前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
开发语言·javascript·ajax·promise
风止何安啊18 分钟前
收到字节的短信:Trae SOLO上线了?尝尝鲜,浅浅做个音乐播放器
前端·html·trae
抱琴_25 分钟前
大屏性能优化终极方案:请求合并+智能缓存双剑合璧
前端·javascript
用户4639897543226 分钟前
Harmony os——长时任务(Continuous Task,ArkTS)
前端
fruge26 分钟前
低版本浏览器兼容方案:IE11 适配 ES6 语法与 CSS 新特性
前端·css·es6
颜酱44 分钟前
开发工具链-构建、测试、代码质量校验常用包的比较
前端·javascript·node.js
mCell1 小时前
[NOTE] JavaScript 中的稀疏数组、空槽和访问
javascript·面试·v8
柒儿吖1 小时前
Electron for 鸿蒙PC - Native模块Mock与降级策略
javascript·electron·harmonyos
颜酱1 小时前
package.json 配置指南
前端·javascript·node.js
todoitbo1 小时前
基于 DevUI MateChat 搭建前端编程学习智能助手:从痛点到解决方案
前端·学习·ai·状态模式·devui·matechat