固定宽度柱状图添加固定宽度的背景和选中阴影~echarts奇奇怪怪系列

一、效果

遇到一个需要固定宽度和对应的背景,背景比柱状要宽一点,并且选中有选中效果阴影
上图:
在这里插入图片描述

原本以为直接用官方的就可以了,结果官方的showBackground是不能这是宽度的,与柱状图同等宽度,选中阴影通过axisPointer做出来,没法设置宽度,也是差强人意
官网的是这样的:不符合要求
在这里插入图片描述

二、解决方法

到论坛里,看到有人是通过用两个柱状图,用 barGap配置项偏移做出来的
但我我发现,这种方法做出来的,偏移量很难把握,而且他只能是一个柱状图,两个直接gg
最终我采用两x轴分开渲染背景和柱状图,避免柱状图数据被背景数据影响

三、最终效果

在这里插入图片描述

option配置项

const data = [120, 200, 150, 80, 70, 110, 130]
const lineData = [150, 230, 224, 218, 135, 147, 260]
const max = data.concat(lineData)
	.reduce((pre, cur) => pre > cur ? pre : cur, 0)
const color = [{
	type: 'linear',
	x: 0,
	x2: 0,
	y: 0,
	y2: 1,
	colorStops: [{
			offset: 0,
			color: '#40BDF7',
		},
		{
			offset: 0.5,
			color: '#40BDF7',
		},
		{
			offset: 1,
			color: '#3F82F7',
		},
	],
}, ]
const option = {
	color,
	xAxis: [{
		type: 'category',
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	}, {
		type: 'category',
		show: false,
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	}],
	yAxis: {
		type: 'value',
		max: max
	},
	series: [{
		data: data,
		barWidth: 20,
		type: 'bar'
	}, {
		data: lineData,
		type: 'line'
	}, {
		xAxisIndex: 1,
		itemStyle: {
			color: 'rgba(180, 180, 180, 0.2)'
		},
		data: data.map(() => max),
		barWidth: 60,
		emphasis: {
			itemStyle: {
				color: {
					type: 'linear',
					x: 0,
					x2: 0,
					y: 0,
					y2: 1,
					colorStops: [{
							offset: 0,
							color: 'rgba(64, 247, 176, 0.25)'
						},
						{
							offset: 1,
							color: 'rgba(17, 34, 64, 0.25)'
						},
					],
				},
			},
		},
		type: 'bar'
	}]
};
  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值