Echarts中rich属性的使用和调整label显示位置

本文详细介绍了如何在Echarts中使用rich属性定制Pie图的标签样式,包括自定义颜色、字体和布局,并展示了如何在tooltip中重写样式以适应不同场景。还讨论了如何调整扇区角度以优化标签显示。

在echarts中rich主要是用于设置用户自定样式,我们可以在title,legend中使用rich,比如下面这个需求的label就可以用rich属性来实现。

label实现代码:

series: [
		    {
			    type: 'pie',
				radius: ['40%', '60%'],
				avoidLabelOverlap: false,
				itemStyle: {
					borderRadius: 4,
					borderColor: '#fff',
					borderWidth: 2
				},
				label: {
					show: true,
					position: 'outside',
					lineHeight: 18,// 行高
					formatter: (params) => {
                        // a,b为rich属性中定义的样式名,相当于css中的class
						const arr = [
							`{a|${params.name}}`,
							`{b|${that.change(params.value)}万}`,
							`{b|${params.percent}%}`
						]
					    return arr.join('\n') // 数组转成字符串并换行
					},
					rich: {
						a: {
							color: '#333',
							fontWeight: 'bold',
							fontSize: 14,
							fontFamily: 'Microsoft YaHei'
						    },
						b: {
							color: '#666',
							fontSize: 13,
							align: 'left'
						    }
					    }
				    },
					labelLine: {
						show: true
					},
					data: data
			}
		]

tooltip中没有rich属性,故不能使用rich改变样式。我们可以直接在formatter属性中重写样式:

tooltip: {
	trigger: 'item',
	formatter: (params) => {
		// 定义样式
		const tooltip_title = `font-size: 13px;color: \#333;font-weight:bold`
		const tooltip_text = `font-size: 13px;color: \#666;margin-left:12px;`
        
        // change是自己定义的处理函数
		const str = `${params.marker} <span style="${tooltip_title}">${params.name}</span>
		            <br/> <span style="${tooltip_text}">${that.change(params.value)}万      
                    </span>
		            <br/> <span style="${tooltip_text}">${params.percent}%</span>`
		return str
	}
},

我们的echarts容器有时候可能比较小,标签可能会显示不完整,会被遮挡住。我们可以调整扇区的最小角度和起始角度来调整位置。

series: [
	{
		type: 'pie',
		radius: ['50%', '70%'],
		avoidLabelOverlap: false,
		minAngle: 15,//扇区最小角度
		startAngle: 190, //扇区起始角度
		itemStyle: {
			borderRadius: 4,
			borderColor: '#fff',
			borderWidth: 2
		},
    }
]

ECharts 中,可以通过配置 `label` `leaves` 属性来分别设置叶子节点非叶子节点的样式。树形图(Tree)支持通过 `label` 控制文本样式,并且可以使用 `rich` 定义富文本格式,从而实现更复杂的样式需求。 ### 设置 label 样式 对于非叶子节点,可以通过 `label` 的 `formatter`、`rich` 等属性来自定义显示内容样式。例如: ```javascript label: { show: true, position: 'top', formatter: '{name}', rich: { name: { fontSize: 14, color: '#333' } }, padding: [2, 5], backgroundColor: '#f0f0f0' } ``` 上述代码中,`formatter` 指定显示字段为 `name`,并通过 `rich` 定义了 `name` 的字体大小颜色。还可以通过 `padding` `backgroundColor` 调整标签背景[^2]。 ### 设置 leaves 样式 对于叶子节点,ECharts 提供了专门的 `leaves` 配置项,允许单独定义其样式。例如: ```javascript leaves: { label: { show: true, position: 'insideRight', formatter: '{name}', rich: { name: { fontSize: 12, color: '#666' } }, padding: [1, 3], backgroundColor: '#e0e0e0' } } ``` 该配置将叶子节点的标签位置设为 `insideRight`,并设置了不同的字体颜色背景色,使其与非叶子节点区分开来。 ### 示例:完整配置 以下是一个完整的树形图配置示例,展示了如何分别设置 `label` `leaves` 的样式: ```javascript option = { tooltip: { trigger: 'item' }, series: [{ type: 'tree', data: [{ name: 'Parent Node', children: [ { name: 'Leaf Node 1' }, { name: 'Leaf Node 2' } ] }], top: '10%', left: '10%', bottom: '20%', right: '20%', symbolSize: 10, label: { show: true, position: 'top', formatter: '{name}', rich: { name: { fontSize: 14, color: '#333' } }, padding: [2, 5], backgroundColor: '#f0f0f0' }, leaves: { label: { show: true, position: 'insideRight', formatter: '{name}', rich: { name: { fontSize: 12, color: '#666' } }, padding: [1, 3], backgroundColor: '#e0e0e0' } } }] }; ``` 通过上述配置,可以清晰地将叶子节点与非叶子节点的标签样式区分开来,实现视觉上的层次感[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值