const data = [ { name: '产业集群' }, { name: '产业集群' }, { name: '剪刀差' }, { name: '给予偿款' }, { name: '绿化带原状' }, { name: '恢复原状' }, { name: '摊贩整治' }, { name: '流动取缔' }, { name: '中企业' }, { name: '自主创新' } ] const offsetData = [ [50, 53], [25, 85], [80, 83], [20, 43], [7, 68], [40, 10], [80, 8], [8, 8], [58, 58] ] const color = [ '#95E7E8', '#6F9DD6', '#95E7E8', '#6CC78A', '#FBA416', '#7BB6FF', '#E1FFF6B2' ] const colorObj = [ { color1: 'transparent', color2: 'transparent' // shadow: "rgba(117, 160, 245, 0.57)", }, { color1: 'transparent', color2: 'transparent' // shadow: "rgba(126, 225, 185, 0.57)", } ] const itemStyle = { opacity: 0.8, fontFamily: '思源黑体', // shadowBlur: 5, shadowOffsetX: 0, shadowOffsetY: 0, borderWidth: 0, borderColor: '#175df2' } const seriesDatas = data.map((item, i) => { return { name: item.name + '\n', value: offsetData[i], label: { color: color[i], fontSize: 16, fontFamily: '思源黑体', fontWeight: 500, fontSize: i % 2 === 0 ? '14' : '18' }, // 基数 symbolSize: (item.value / 1000) * 10, itemStyle: { color: new echarts.graphic.RadialGradient(0.41, 0.45, 0.64, [ { offset: 0, color: colorObj[i % 2].color1 }, { offset: 1, color: colorObj[i % 2].color2 } ]), ...itemStyle, shadowColor: colorObj[i % 2].shadow } } }) // data end option = { grid: { show: false, top: 10, bottom: 10 }, xAxis: { type: 'value', show: false, min: 0, max: 100, nameLocation: 'middle', nameGap: 5 }, yAxis: { min: 0, show: false, max: 100, nameLocation: 'middle', nameGap: 0 }, series: [ { type: 'scatter', symbol: 'circle', colorBy: 'seriesIndex', label: { show: true, formatter: '{b}', textStyle: { fontSize: 12 } }, data: seriesDatas } ] }