echarts图表formatter函数的使用

formatter 提示框浮层内容格式器,支持字符串模板和回调函数两种形式。

可以通过formatter 函数 可以动态的修改 我们想要展示的数据

第一种: 字符串模板 – 官网

字符串模板

模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。

示例:

formatter: '{b0}: {c0}<br />{b1}: {c1}'

第二种: 回调函数 – 官网

回调函数

回调函数格式:

(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string
第一个参数 params 是 formatter 需要的数据集。格式如下:
在这里插入图片描述

项目需求–如图 formatter函数 显示的效果

在这里插入图片描述

实际开发显示的效果图

显示的数据重复 ----  可以通过 formatter 函数来去除数据重复的效果

在这里插入图片描述
代码如下:

tooltip: {
		trigger: 'axis',
		axisPointer: {
			type: 'shadow'
		},
		formatter: (params) => { //格式化数据的函数
			console.log('我的参数', params.slice(-3))
			var listData = params.slice(-3) // 获取对应的数据
			var list = []
			var listItem = ''
			var html = ''
			html += '<span>'+listData[0].name+'<span><br>'
			for (var i = 0; i < listData.length; i++) {
				html += '<i style="display: inline-block;width: 10px;height: 10px;background: ' +
					listData[i].color.colorStops[1].color +
					';margin-right: 5px;border-radius: 50%;}"></i><span style="width:70px; display:inline-block;">' +
					listData[i].seriesName +
					':' +
					listData[i].data +
					'</span><br>' 
				
			}
			list.push(html)
			listItem = list.join('<br>') // 通过数组的join()方法 实现<br>换行的效果
			return '<div class="showBox">' + listItem + '</div>'
		}
	},

**

所有原码—如下

**

optionThree = {
	tooltip: {
		trigger: 'axis',
		axisPointer: {
			type: 'shadow'
		},
		formatter: (params) => { //格式化数据的函数
			var listData = params.slice(-3)
			var list = []
			var listItem = ''
			var html = ''
			html += '<span>'+listData[0].name+'<span><br>'
			for (var i = 0; i < listData.length; i++) {
				html += '<i style="display: inline-block;width: 10px;height: 10px;background: ' +
					listData[i].color.colorStops[1].color +
					';margin-right: 5px;border-radius: 50%;}"></i><span style="width:70px; display:inline-block;">' +
					listData[i].seriesName +
					':' +
					listData[i].data +
					'</span><br>' 
			}
			list.push(html)
			listItem = list.join('<br>')
			return '<div class="showBox">' + listItem + '</div>'
		}
	},
	legend: {
		textStyle: {
			color: '#fff',
		},
		x: '50%',
		data: ['2018年', '2019年', '2020年'],

	},
	grid: {
		left: '2%',
		right: '4%',
		bottom: '0%',
		top: '15%',
		containLabel: true
	},
	xAxis: [{
		type: 'category',
		axisLine: { //---坐标轴 轴线
			show: true, //---是否显示
			lineStyle: {
				color: '#00FFFF',
				width: 1,
				type: 'solid',
			},
		},
		data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
	}],
	yAxis: [{
		type: 'value',
		name: '数量',
		axisLine: { //---坐标轴 轴线
			show: true, //---是否显示
			lineStyle: {
				color: '#00FFFF',
				width: 1,
				type: 'solid',
			},
		},
		axisLabel: {
			formatter: '{value}'
		},
		splitArea: { //--网格区域
			show: false, //---是否显示,默认false
		}
	}],
	series: [{
			name: '',
			type: 'line',
			color: '#ff9000',
			data: [8,4,6,2,5,12,6,8,9,15,48,12],

		}, {
			name: '',
			type: 'line',
			color: '#00a2ff',
			data: [1,0,1,1,3,3,4,15,30,15,16,24],

		}, {
			name: '',
			type: 'line',
			color: '#17bc42',
			data: [4,4,5,1,1,5,2,20,16,30,16,35],
		},
		{
			name: '2018年',
			type: 'bar',
			data: [8,4,6,2,5,12,6,8,9,15,48,12],
			barGap: '1%', // 柱图间距
			itemStyle: {
				normal: {
					color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
						offset: 0,
						color: '#cdc42e'
					}, {
						offset: 1,
						color: '#ff9000'
					}]),
					barBorderRadius: [15, 15, 0, 0]
				}
			},

		}, {
			name: '2019年',
			type: 'bar',
			data: [1,0,1,1,3,3,4,15,30,15,16,24],
			barGap: '1%', // 柱图间距
			itemStyle: {
				normal: {
					color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
						offset: 0,
						color: '#00f0ff'
					}, {
						offset: 1,
						color: '#00a2ff'
					}]),
					barBorderRadius: [15, 15, 0, 0]
					// color: '#000'
				}
			},

		}, {
			name: '2020年',
			type: 'bar',
			data: [4,4,5,1,1,5,2,20,16,30,16,35],
			barGap: '1%', // 柱图间距
			itemStyle: {
				normal: {
					color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
						offset: 0,
						color: '#00ff2a'
					}, {
						offset: 1,
						color: '#17bc42'
					}]),
					barBorderRadius: [15, 15, 0, 0]
				}
			},
		},
	]
};
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
### 回答1: 我可以告诉你EChartsformatter的一般用法,但更多的使用方法可以从官方文档中了解。formatter可以用来格式化悬浮框中的文本信息,可以使用字符串模板和回调函数来定制化显示。字符串模板可以使用特定的占位符来控制显示的内容,而回调函数则可以根据数据点的属性来返回需要显示的内容。 ### 回答2: Echarts是一个用于可视化数据的JavaScript库,而formatterEcharts中常用的一个属性,用于格式化数据显示的方式。 在Echarts中,我们可以通过formatter来定义数据标签的显示方式。formatter是一个回调函数,它可以在数据标签需要显示时被调用,通过返回值来决定显示的内容。 使用formatter时,我们需要传入一个回调函数作为参数。在回调函数中,可以通过参数params获取到当前要显示的标签内容以及其他一些相关的信息。根据这些信息,我们可以自定义标签的显示方式,可以根据业务需求进行各种复杂的数据格式化操作。 例如,当我们需要在柱状图中显示数据的时候,可以通过formatter来定义一个函数,然后根据具体需求将数据转换为需要的格式,比如添加单位、保留小数点等。又或者在饼图中需要显示百分比,我们可以通过formatter来计算出每个扇形的百分比,并进行格式化显示。 使用formatter可以帮助我们定制化数据标签的显示方式,使得图表更符合我们的设计需求,并提供更好的数据可读性。通过合理的使用formatter,我们可以让Echarts图表更具个性化和专业性。 ### 回答3: ECharts是一种流行的JavaScript可视化库,提供了丰富的图表展示功能。formatterECharts中的一个重要属性,用于对图表的数据进行格式化和自定义。使用formatter可以实现以下功能: 1. 自定义数据标签:通过formatter,可以自定义图表中数据标签(例如柱状图的顶部数字标签、饼图的扇形区域标签)的显示内容和样式。可以根据需求,调整标签的位置、颜色、字体大小等。 2. 数据单位转换:在处理大量数据时,可能需要将数据以简化的方式进行显示,例如将数值转换为带有单位的形式(如K、M、B表示千、百万、十亿等)。通过设置formatter函数,可以根据数据大小动态调整数据格式。 3. 数据格式化:通过设置formatter,可以对图表中的数据进行格式化,例如在以百分比显示的图表中,我们可以通过formatter函数将小数转换为对应的百分比形式。 4. 数据动态展示:通过设置formatter函数,可以实现在图表中展示动态数据。可以在函数中编写一些逻辑,实现动态显示数据的功能,例如将日期格式化为特定的显示形式,或者根据条件显示不同的数据内容。 总之,使用ECharts中的formatter属性,可以对图表数据进行灵活的格式化和自定义,使得图表展示更具有个性化和可读性。只要编写合适的formatter函数,就可以根据需求展示出符合要求的数据标签。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值