echarts 多圆环图表

请添加图片描述

option如下

vue代码

const d = [
	{value: 348, name: '内部人员'},
	{value: 735, name: '外部人员'}
]
const colors = ['#cfc100', '#1091ca']
const colors2 = ['#fff000', '#11b6ff']
const el = this.$refs.bgry_chart as HTMLElement
const width = el.offsetWidth
const myEchart = echarts.init(el)
myEchart.setOption({
	color: colors,
	title: {
		text: '1083\n总数',
		textAlign: 'center',
		textStyle: {
			color: 'white'
		},
		top: 104,
		left: 154
	},
	tooltip: {
		trigger: 'item'
	},
	legend: {
		bottom: '15%',
		left: 'center',
		icon: "rect",
		orient: 'vertical',
		itemWidth: 14,
		itemHeight: 14,
		formatter: function (name, p)  {
			let sum = 0
			const c = d.find(item => item.name === name)
			d.forEach(i => {
				sum += i.value
			})
			return name + '   ' + c.value + '个   ' + ((c.value/sum)*100).toFixed(0) + '%'
		},
		textStyle: {
			color: 'white'
		}
	},
	series: [
		{
			name: '办公人员',
			type: 'pie',
			radius: ['34%', '46%'],
			top: -100,
			avoidLabelOverlap: false,
			itemStyle: {
				borderColor: 'rgba(255,255,255,0)',
				borderWidth: 2,
				color: (params: any) => {
					return {
						type: 'radial',
						x: 159,
						y: 125,
						r: 106,
						colorStops: [{
							offset: .64, color: colors[params.dataIndex] // 0% 处的颜色
						}, {
							offset: .69, color: colors2[params.dataIndex] // 100% 处的颜色
						}, {
							offset: 1, color: colors2[params.dataIndex] // 100% 处的颜色
						}],
						global: true // 缺省为 false
					}
				}
			},
			label: {
				show: false,
			},
			labelLine: {
				show: false
			},
			data: d
		},{
			name: '办公人员',
			type: 'pie',
			radius: ['54%', '56%'],
			top: -100,
			avoidLabelOverlap: false,
			itemStyle: {
				color: '#1091ca',
			},
			label: {
				alignTo: 'edge',
				color: '#ffffff',
				formatter: '{value|{c}}\n{name|{b}}',
				minMargin: 15,
				edgeDistance: 10,
				lineHeight: 20,
				rich: {
					time: {
						fontSize: 10
					}
				}
			},
			labelLine: {
				length: 15,
				maxSurfaceAngle: 80
			},
			labelLayout: function (params: any) {
				var isLeft = params.labelRect.x < width / 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
				};
			},
			data: d,
			silent: true,
		}, {
			name: '办公人员',
			type: 'pie',
			radius: ['26%', '28%'],
			top: -100,
			avoidLabelOverlap: false,
			itemStyle: {
				color: '#1091ca',
			},
			label: {
				show: false,
			},
			labelLine: {
				show: false
			},
			data: d,
			silent: true,
		}
	]
})

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ECharts 是一个基于 JavaScript 的开源可视化库,可以用来绘制各种类型的图表,包括扇形圆环图。要绘制扇形圆环图,你可以使用 ECharts 的饼图(pie)系列。 首先,你需要在页面中引入 ECharts 的 JavaScript 文件。然后,创建一个用于显示图表的 DOM 元素。接下来,使用 ECharts 的 API 配置图表的数据和样式。 下面是一个简单的示例代码,展示如何使用 ECharts 绘制扇形圆环图: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts 扇形圆环图示例</title> <!-- 引入 ECharts 的 JavaScript 文件 --> <script src="https://cdn.jsdelivr.net/npm/echarts@5.2.2/dist/echarts.min.js"></script> </head> <body> <!-- 用于显示图表的 DOM 元素 --> <div id="chart" style="width: 600px; height: 400px;"></div> <script> // 初始化 ECharts 实例 var myChart = echarts.init(document.getElementById('chart')); // 配置图表的数据和样式 var option = { series: [ { type: 'pie', radius: ['50%', '70%'], // 控制内外半径,实现圆环效果 data: [ {value: 335, name: '数据项1'}, {value: 310, name: '数据项2'}, {value: 234, name: '数据项3'}, {value: 135, name: '数据项4'}, {value: 1548, name: '数据项5'} ] } ] }; // 使用刚指定的配置项和数据显示图表 myChart.setOption(option); </script> </body> </html> ``` 你可以根据需要修改数据项和样式配置,以适应你的具体需求。希望这个示例能帮助到你绘制扇形圆环图!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bdawn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值