Echarts 折线图拐点超过某值突出显示,颜色变红-灵析社区

JACKY

Echarts在折线图处理方面可以变得非常灵活,比如此示例,超过某值后,将节点的大小颜色文字都突出显示出来,关键点是在于处理回调函数,个性化每个值。

示例效果

示例源代码(共150行)

/*
* @Author: 还是大剑师兰特(CSDN)
* @下面源代码版权归还是大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @First published in CSDN
* @First published time: 2023-02-13
*/
<template>
	<div class="container">
		<h3>vue+echarts:折线拐点超过某值突出显示,颜色变红</h3>
		<p>大剑师兰特,还是大剑师兰特</p>
		<div id="vue-echarts" ref="refEcharts"> </div>
	</div>
</template>
<script>
	import * as echarts from 'echarts'; //局部引用,如果采用全局模式,这里不写
	export default {
		name: 'cuclife',
		data() {
			return {}
		},
		methods: {
			initCharts() {
				let myChart = echarts.init(this.$refs.refEcharts);
				myChart.setOption({
					title: {
						text: '标题:ECharts示例'
					},
					tooltip: {
						show: true,
						trigger: 'axis',
					},
					xAxis: {
						type: 'category',
						data: ['cuclife', 'openlayers', 'cesium', 'echarts', 'leaflet']
					},
					yAxis: {
						type: 'value',
						name: '技术技能值', //坐标轴名称
						nameLocation: 'middle', //坐标轴的位置
						nameTextStyle: {
							color: '#ff00ff',
							//align:'left',
						},
						nameGap: 50, //坐标轴名称与轴线之间的距离
						nameRotate: 90, //坐标轴名字旋转角度值,
						axisLine: {
							lineStyle: {
								color: '#ff00ff'
							},
							symbol: ['none', 'arrow'], //轴线两边的箭头
							symbolSize: [8, 12]
						},
						axisTick: {
							inside: false, //标轴刻度是否朝内,默认朝外
						},
						axisLabel: {
							show: true,
							inside: false,
							formatter: '{value}'
						},
						splitArea: {
							show: true,
							color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)'],
						}
					},
					grid: {
						x: 50,
						y: 55,
						x2: 25,
						y2: 20,
						containLabel: true
					},
					series: [{
						type: 'line',
						//设置拐点大小,图形类型,旋转角度,缩放同比,位置偏移,是否显示
						symbol: function(param) {
							if (param > 25) {
								return 'diamond'
							} else {
								return 'circle'
							}
						},
						symbolSize: function(param) {
							if (param > 25) {
								return 30
							} else {
								return 10
							}
						},
						symbolRotate: 180,
						symbolKeepAspect: true,
						symbolOffset: [0, 0],
						showSymbol: true, //false, tooltip hover时候才显示出来
						label: {
							show: true,
							formatter: function(param) { //拐点文字回调
								var currentValue = new String()
								currentValue = param.value;
								if (currentValue > 25) {
									currentValue = currentValue + '很高';
								} else if (currentValue < 15) {
									currentValue = currentValue + '偏低';
								}
								return currentValue;
							},
                        },
							//设置拐点的颜色,边框等样式
							itemStyle: {
								color: function(param) {
									if (param.value > 25) {
										return 'red'
									} else {
										return 'yellow'
									}
								},
								borderColor: '#0000ff', //拐点边框颜色
								borderWidth: 1, //拐点边框大小
							},
							data: [15, 36, 10, 10, 20],
							lineStyle: {
								//静态时显示状态
								type:'dotted', //设置折线类型 
								width: 5, //设置折线粗细
								opacity: 0.8, //设置透明度
								color:'blue'
							},						
					}]
				});
			}
		},
		mounted() {
			this.initCharts();
		}
	}
</script>
<style scoped>
	.container {
		width: 840px;
		height: 580px;
		margin: 50px auto 0;
		border: 1px solid rgb(228, 57, 97);
	}
	#vue-echarts {
		width: 800px;
		height: 460px;
		border: 1px solid #d8d;
		margin: 0 auto;
	}
</style>


相关资料参考

https://echarts.apache.org/zh/option.html#series-line.symbol
https://echarts.apache.org/zh/option.html#series-line.itemStyle

拐点大小等设置

属性名称默认值参数说明
symbolemptyCircle‘rect’,‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’,
symbolSize4可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10
symbolRotate:0标记的旋转角度(而非弧度)。正值表示逆时针旋转。注意在 markLine 中当 symbol 为 ‘arrow’ 时会忽略 symbolRotate 强制设置为切线的角度。
symbolKeepAspect:true如果 symbol 是 path:// 的形式,是否在缩放时保持该图形的长宽比
symbolOffset[0, 0]标记相对于原本位置的偏移。默认情况下,标记会居中置放在数据对应的位置,但是如果 symbol 是自定义的矢量路径或者图片,就有可能不希望 symbol 居中。这时候可以使用该配置项配置 symbol 相对于原本居中的偏移,可以是绝对的像素值,也可以是相对的百分比。例如 [0, ‘-50%’] 就是把自己向上移动了一半的位置,在 symbol 图形是气泡的时候可以让图形下端的箭头对准数据点。
showSymboltrue是否显示 symbol, 如果 false 则只有在 tooltip hover 的时候显示。


阅读量:1299

点赞量:0

收藏量:0