Echart用法介绍

Echart用法介绍

Echart官方文档

Echart实例创建步骤
1.准备一个DOM容器
2.通过init方法初始化一个echarts实例
3.将图标配置数据传给setOption方法绘制图表

Echart常用配置信息介绍

基本配置信息:

grid(图表相对画布的位置)
title(表头)
tooltip(鼠标移上悬浮窗显示数据)
legend(不同线或色块代表的数据类型)
xAxis(x轴配置信息)
yAxis(y轴配置信息)
series(表的类型以及对应类型的数据配置)

tooltip 浮窗配置

{
	trigger: 'axis',
	// formatter: '{a0}: {c0}',// formatter用于自定义浮窗内容格式,可以简单的格式化为 '{a0}: {c0}'。也可以自定义文字和样式,通过function return一个完整的DOM结构
	formatter: function(params) {
		let result = `<p style="color:#ffffff;font-size:12px">${params[0].axisValue}</p>`
		params.forEach(function(item) {
		let hasUnit = item.seriesName.includes('率') ? '%' : ''
		result += `<p><span style="display:inline-block;margin-right:5px;margin-bottom:-1px;width:10px;height:10px;border-radius:1px;background-color:${item.color}"></span><span style="color:#ffffff;font-size:12px">${item.seriesName}: ${item.value}${hasUnit}</span></p>`
		})
		return result
	},
	backgroundColor: 'rgba(51,51,51,0.8)',
	textStyle: {
		color: '#ffffff',
		align: 'left',
		fontSize: '12',
		fontFamily: 'PingFangSC-Regular'
	},
	axisPointer: {
		lineStyle: {
			color: '#ccc',
			width: 0.5
		}
	},
	padding: [5, 10, 7, 10]
}

legend: 底部每条折线的label配置

legend: {
	data: [],// 每条折线的数据
	top: 'auto',
	bottom: 0,
	icon: 'rect',
	//  这个字段控制形状  类型包括 circle 圆形,rect 正方形,roundRect,triangle,diamond,pin,arrow,none
	itemWidth: 11,
	itemHeight: 11,
	itemGap: 10,// 图例每项之间的间隔
	borderWidth: 0
},

series: 图表类型及配置

        series: {
		  name: '名字',
          type: 'line',// 折线类型
          data:[], // 每条折线的数据
          smooth: false,// 是否平滑显示,即折线图or曲线图
          hoverAnimation: true,// 动画
          showSymbol:true,// 是否显示折线上的每个折点(空心圆)
          symbolSize: 5,// 折点(空心圆)大小
          yAxisIndex: 0,// 参照轴
          itemStyle: {// 折线样式配置
            normal: {
              color: '色值',
              borderWidth: 1,
              lineStyle: {color: '色值',width: 2}
            },
			areaStyle:{// 区域阴影
				color: {
				  type: 'linear',// 阴影类型
				  x: 0,x2: 0,y: 0,y2: 1,
				  colorStops: [
					{offset: 0, color: color[i]},
					{offset: 1,color: 'rgba(250,250,250,0)'}
				  ]
				}
			}
          },

xAxis、yAxis: x、y轴的配置,下面为x轴示例

	{
          type: 'category',// 类型: category:类目轴、value:数值轴、time:时间轴、log:对数轴
          boundaryGap: false,
          data: data,
          offset: 10,// 相对默认位置的偏移
          max: 'dataMax',// 坐标轴刻度最大值,设置为特殊值 dataMax时取,数据在该轴上的最大值作为最大刻度
          min: 'dataMin',// 坐标轴刻度最小值,设置为特殊值 dataMin时取,数据在该轴上的最小值作为最小刻度
          splitLine: {// 刻度线
            show: true,
            lineStyle: {
              color: CHART_COLOR.axle,
              width: 0.5
            }
          },
          axisLabel: {// 坐标值
            color: CHART_COLOR.label,
            fontSize: 12,
            align: 'center',
            showMinLabel: true,// 是否显示最小的坐标值
            showMaxLabel: true// 是否显示最大的坐标值
          },
          axisTick: {// 坐标刻度
            show: false
          },
          axisLine: {// 坐标轴
            show: true,
            lineStyle: {
              color: CHART_COLOR.axle,
              width: 0.5
            }
          }
        }

dataZoom 带滑动条的图表配置:

dataZoom: [
	{
		end: this.countNum1(series.xAxisData.length), // 数据窗口范围的结束百分比
		type: 'slider',// 类型:inside 可通过鼠标/手指 拖拽、缩放、漫游。slider 单独的滑动条,可在滑动条上进行缩放或漫游
		left: '30px',
		show: true,
		width: 12,
		handleSize: '0',
		yAxisIndex: [0],
		borderColor: 'rgba(250,250,250,0)',
		fillerColor: '#999',
		showDataShadow: false, // 是否显示数据阴影 默认auto
		showDetail: false, // 即拖拽时候是否显示详细数值信息 默认true
		realtime: true // 是否实时更新
	},
	{
		type: 'inside',
		yAxisIndex: [0],
		zoomLock: true// 是否锁定图表区域的大小
	}
]

dataZoom需要配置在想要显示的坐标配置信息内。需要注意的是end值的配置,关系到整个图表的展示大小。end值代表滑动条结束位置所处在的全部柱状图的第几个位置,也可以认为是滑动条的宽度代表着多少个柱状图。具体计算方式需自行尝试,不同大小不同数量的图表计算方式不同。

Echart监听窗口变化实时自适应大小的实现方式以及避免报错的办法

实现方法:

为window添加resize监听调用echart实例的resize方法

关于窗口监听会出现的报错的说明:

在初始化echart实例后,如果直接给window对象添加事件监听,会在页面销毁后报错找不到echart对象,所以需要在销毁页面的时候同时清掉window的监听函数。
具体实现过程:
1. 在data中创建一个空的属性名

	myChart: ''

2. 在methods内创建一个调用echart实例resize方法的函数

	resize() {
      this.myChart && this.myChart.resize()
    }
	
3. 创建并初始化echart实例并给window对象添加resize事件监听(注意初始化的时候最好写在$nextTick方法内,避免偶然的图表绘制不完整的问题)

	let el = document.getElementById(this.chartId)
	this.$echarts.dispose(el) // 销毁之前的实例
	let myChart = this.$echarts.init(el)
	this.myChart = myChart
	window.addEventListener('resize', this.resize)
	
4. 在页面销毁之前清除window对象的时间监听,清空data内用于存储echart实例的属性名

	beforeDestroy() {
      this.myChart = ''
      window.removeEventListener('resize', this.resize) // 取消监听
    }

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts(Enterprise Charts)是一个基于 JavaScript 的开源可视化图表库,由百度开发维护。它可以用来制作各种类型的图表和数据可视化,包括折线图、柱状图、散点图、饼图等等。ECharts 具有丰富的图表类型和交互能力,支持多种数据格式(如 JSON、CSV、XML 等)和多种数据源(如静态数据、动态数据、数据库数据等),并且提供了完善的 API 和插件机制,方便开发者进行自定义配置和扩展。 使用 ECharts 可以帮助开发者轻松地实现复杂的数据可视化需求,而且支持移动端和桌面端的多种场景,具有良好的兼容性和性能表现。 以下是一个简单的 ECharts 实例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ECharts 示例 </title> <!-- 引入 ECharts 核心文件 --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <!-- 准备一个具备大小(宽高)的 DOM 容器 --> <div id="main" style="width: 600px;height:400px;"></div> <!-- 使用 ECharts 初始化容器 --> <script> // 基于准备好的容器(div)创建图表实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option = { title: { text: '折线图示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'line', data: [5, 20, 36, 10, 10, 20] }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html> ``` 在这个例子中,我们首先引入了 ECharts 的核心文件,然后准备了一个具备宽高的 DOM 容器(这里是 `div` 标签),并使用 `echarts.init` 方法初始化了一个图表实例。接下来,我们通过配置项 `option` 定义了一个简单的折线图,包括图表标题、提示框、图例、坐标轴和数据系列等。最后,通过 `myChart.setOption(option)` 方法将配置项应用到图表中,就可以在页面上显示出我们定义好的折线图了。 更多关于 ECharts 的使用和配置,请参考官方文档:https://echarts.apache.org/zh/index.html。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值