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就可以实现切换

相关推荐
Mr Xu_3 分钟前
前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践
前端·css
低代码布道师25 分钟前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
鹏北海-RemHusband40 分钟前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
LYFlied40 分钟前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
光影少年44 分钟前
AI 前端 / 高级前端
前端·人工智能·状态模式
一位搞嵌入式的 genius1 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
anOnion1 小时前
构建无障碍组件之Alert Dialog Pattern
前端·html·交互设计
choke2331 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面1 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
Deng9452013141 小时前
Vue + Flask 前后端分离项目实战:从零搭建一个完整博客系统
前端·vue.js·flask