首页 前端知识 echarts 饼图的labelLine 线的长度自适应

echarts 饼图的labelLine 线的长度自适应

2024-06-07 12:06:48 前端知识 前端哥 768 93 我要收藏

labelLayout:标签的统一布局配置。
该配置项是在每个系列默认的标签布局基础上,统一调整标签的(x, y)位置,标签对齐等属性以实现想要的标签布局效果

该配置项也可以是一个有如下参数的回调函数

// 标签对应数据的 dataIndex
dataIndex: number
// 标签对应的数据类型,只在关系图中会有 node 和 edge 数据类型的区分
dataType?: string
// 标签对应的系列的 index
seriesIndex: number
// 标签显示的文本
text: string
// 默认的标签的包围盒,由系列默认的标签布局决定
labelRect: {x: number, y: number, width: number, height: number}
// 默认的标签水平对齐
align: 'left' | 'center' | 'right'
// 默认的标签垂直对齐
verticalAlign: 'top' | 'middle' | 'bottom'
// 标签所对应的数据图形的包围盒,可用于定位标签位置
rect: {x: number, y: number, width: number, height: number}
// 默认引导线的位置,目前只有饼图(pie)和漏斗图(funnel)有默认标签位置
// 如果没有该值则为 null
labelLinePoints?: number[][]

代码如下:

 labelLayout: (params) => {
              const isLeft = params.labelRect.x < this.myChart5.getWidth() / 2,
                points = params.labelLinePoints
              points[2][0] = isLeft ? params.labelRect.x : params.labelRect.x + params.labelRect.width
              return {
                labelLinePoints: points
              }
            },  //label线设置

完整代码:

		tbyqEcharts(domId, color, gzVal, czVal) {
			var chartDom = document.getElementById(domId)
			var myChart = echarts.init(chartDom)
			myChart.setOption({
				color,
				series: {
					type: 'pie',
					// radius: ['42%', '60%'],
					radius: ['35%', '50%'],
					// left: 20,
					label: {
						minMargin: 50,
						edgeDistance: 10,
						fontSize: '12px'
					},
					labelLine: {
						lineStyle: {
							type: [5]
						},
						length: 2,
						length2: 1
					},
					labelLayout: function (params) {
						var isLeft = params.labelRect.x < myChart.getWidth() / 2
						var points = params.labelLinePoints
						// Update the end point.
						points[2][0] = isLeft ? params.labelRect.x : params.labelRect.x + params.labelRect.width
						return {
							labelLinePoints: points,
							dy: -10,
							dx: 0
						}
					},
					data: [
						{ value: gzVal, name: '过载' },
						{ value: czVal, name: '重载' }
					]
				}
			})
		},
	mounted() {
		this.$nextTick(() => {
			this.tbyqEcharts('heavy-item-left', ['#5079F8', '#f65c66'], this.tb.gzVal, this.tb.czVal)
			this.tbyqEcharts('heavy-item-right', ['#2076c1', '#f65c66'], this.tb.gzVal, this.tb.czVal)
			this.tbyqEcharts(
				'heavy-item-center',
				['rgba(248,171,80,1)', '#f65c66'],
				this.tb.gzVal,
				this.tb.czVal
			)
		})
	},

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11268.html
标签
评论
发布的文章

1.10 Unity中的数据存储 JSON

2024-06-13 21:06:30

JSON 数据格式化方法

2024-06-13 21:06:26

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!