原理
使用一個默認顏色為透明的,並且只顯示labelLine的餅狀圖
然后通過調節這個透明的餅狀圖 以達到修改labelLine的位置
echarts地址
https://gallery.echartsjs.com/editor.html?c=x6VnXPfxlx
echarts源碼:
option = { backgroundColor: "#03141c", title: { text: "84%", subtext: '完成部門占比', x: 'center', y: 'center', textStyle: { color: "#fff", fontSize: 30, fontWeight: 'normal' }, subtextStyle: { color: "rgba(255,255,255,.45)", fontSize: 14, fontWeight: 'normal' } }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { x: 'center', y: 'bottom', data: ['rose3', 'rose5', 'rose6', 'rose7', 'rose8'] }, calculable: true, series: [ { type: 'pie', radius: [80, 120], center: ['50%', '50%'], data: [ { value: 10, name: '吳際帥\n牛亞莉', itemStyle: { color: "transparent" } }, { value: 90, name: 'rose2', itemStyle: { color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ offset: 0, color: '#0ce4da' }, { offset: 1, color: '#f6fb08' }]) }, labelLine: { show: false, length: 200, length2: 100 }, label: { color: "rgba(255,255,255,.45)", fontSize: 14, show: false, position: 'outside', formatter: '客戶滿意度\n{a|52}個', rich: { a: { color: "#fff", fontSize: 20, lineHeight: 30 }, } } } ] }, { // 指示線 // 通過value 的值 調節lableLine的位置 type: 'pie', radius: [80, 100], data: [ { value: 100, itemStyle: { color: 'transparent' } }, { value: 50, itemStyle: { color: "transparent" }, labelLine: { show: true, length: 2, length2: 240, color: 'orange', lineStyle: { color: 'orange' } }, label: { color: "rgba(255,255,255,.45)", fontSize: 14, position: 'outside', formatter: '客戶滿意度\n{a|52}個', rich: { a: { color: "#fff", fontSize: 20, lineHeight: 30 }, } } } ] }, { type: 'pie', radius: [80, 100], center: ['50%', '50%'], data: [{ value: 10, itemStyle: { color: '#06d3cd' }, labelLine: { show: false } }, { value: 90, itemStyle: { color: "transparent" } } ] } ] };