Echarts之球形水波纹

7 篇文章 0 订阅

球形水波纹是比较与饼图展现方式 更灵动 更高级的一种
echarts-liquidfill 水球图插件官网: https://www.npmjs.com/package/echarts-liquidfill

1.展示图:【左侧即为水波图,右侧是想要展示的信息列】
在这里插入图片描述
2.实现过程

①、 需要下载echarts及liquidfill 插件

安装命令:
npm install echarts
npm install echarts-liquidfill

以下为我的版本号:

"echarts": "^4.1.0",
"echarts-liquidfill": "^2.0.2",

注意:【echarts-liquidfill@3兼容echarts@5、 echarts-liquidfill@2兼容echarts@4】

②、引用

import * as echarts from 'echarts';
import 'echarts-liquidfill'

③、代码

<template>
	<div class="pie-overall-yield-container">
		<div class="content-title">Overall Yield</div>
		<div id="pie-overall-yield" class="chart"></div>
		<div class="nums-overall-yield">
			<div class="nums">
				<span class="num white">1036</span>
				<span class="type">All</span>
			</div>
			<div class="nums">
				<span class="num blue">1036</span>
				<span class="type">Target</span>
			</div>
			<div class="nums">
				<span class="num turquoise">99%</span>
				<span class="type">Target Per</span>
			</div>
		</div>
	</div>
</template>

<script>
import * as echarts from "echarts";
import "echarts-liquidfill";
export default {
	name: "PieOverallYield",
	props: {
		completeList: Array,
		productionList: Array,
	},
	watch: {
	},
	data() {
		return {
			nums: [
				{ num: 1036, type: "All" },
				{ num: 1036, type: "Target" },
				{ num: "99%", type: "Target Per" },
			],
		};
	},
	methods: {
		// OverallYield 饼图
		pieChart(id) {
			const value = 0.52;
			let count = echarts.init(document.getElementById(id));
			let option = {
				title: {
					// 标题
					text: (value * 100).toFixed(0) + "%",
					textStyle: {
						// 标题的样式
						color: "#47c7ec", // 字体颜色
						fontFamily: "Microsoft YaHei", // 字体
						fontSize: 24,
						fontWeight: "bold",
						align: "center", // 文字的水平方式
						baseline: "middle",
						position: "inside",
						verticalAlign: "middle", // 文字的垂直方式
					},
					left: "center", // 定位
					top: "30%",
				},
				polar: {
					radius: ["65%", "60%"],
					center: ["50%", "50%"],
				},
				angleAxis: {
					max: 100,
					clockwise: false,//刻度增长是否按顺时针,默认顺时针(true)。
					axisLine: {
						show: false,
					},
					axisTick: {
						show: false,
					},
					axisLabel: {
						show: false,
					},
					splitLine: {
						show: false,
					},
				},
				radiusAxis: {
					type: "category",
					show: true,
					axisLabel: {
						show: false,
					},
					axisLine: {
						show: false,
					},
					axisTick: {
						show: false,
					},
				},
				series: [
					{
						type: "liquidFill",//定义类型
						radius: "55%",
						waveAnimation: true,
						z: 1,
						data: [
							{
								value: 0.52,
								direction: "left",//移动方向
								amplitude: 20, // 水波纹的振幅
								itemStyle: {//一个波浪设置透明度
									normal: {
										color: "#58419a",
									},
								},
								// 悬浮后的样式
								emphasis: {
									itemStyle: {
										opacity: 0.9,
									},
								},
							},
							{
								value: 0.41,
								direction: "right",
								amplitude: 10, // 水波纹的振幅
								itemStyle: {
									normal: {
										color: "#1b87b1",
									},
								},
								// 悬浮后的样式
								emphasis: {
									itemStyle: {
										opacity: 0.9,
									},
								},
							},
							{
								value: 0.2,
								direction: "left",
								amplitude: 5, // 水波纹的振幅
								itemStyle: {
									normal: {
										color: "#3a41ef",
									},
								},
								// 悬浮后的样式
								emphasis: {
									itemStyle: {
										opacity: 0.9,
									},
								},
							},
						],
						// 改变水球图的形状,比如 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'(默认为circle)
						shape: 'circle' 
						//水球图边框属性设定
						outline: {
							show: true,
							borderDistance: 0, // 设置和外层轮廓的间距
							itemStyle: {
							    borderWidth: 0, // 设置外层边框宽度
	                           // borderColor: 'red', // 设置外层边框颜色
	                          //  shadowBlur: 'none' // 消除外层边框阴影
							},
						},
						itemStyle: {
							opacity: 0.9, // 波浪的透明度
							shadowBlur: 0, // 波浪的阴影范围
						},
						backgroundStyle: {
	                      //  borderWidth: 4, // 修改背景边框宽度
	                      //  borderColor: 'green' // 修改背景边框的颜色
							color: "#212b3a", // 图表的背景颜色
						},
						label: {
							// 数据展示样式
							show: false,
							color: "#000",
							insideColor: "#fff",
							fontSize: 24,
							fontWeight: 400,
							align: "center",
							baseline: "middle",
							position: "inside",
						},
					},
					{
						name: "",
						type: "bar",
						roundCap: true,
						z: 2,
						showBackground: true,
						backgroundStyle: {
							color: "#15181e",
						},
						data: [52],
						coordinateSystem: "polar",
						itemStyle: {
							normal: {
								color: new echarts.graphic.LinearGradient(0, 0, 0.5, 1, [
									{
										offset: 0,
										color: "#5acef2",
									},
									{
										offset: 0.7,
										color: "#5073fb",
									},
									{
										offset: 1,
										color: "#6ae8d8",
									},
								]),
							},
						},
					},
				],
			};
			count.setOption(option);
			window.addEventListener("resize", () => {
				if (count) {
					count.resize(); // 不报错
				}
			});
		},
	},
	mounted() {
		this.pieChart("pie-overall-yield");
	},
};
</script>

<style scoped lang="scss">
.pie-overall-yield-container {
	width: 100%;
	height: 100%;
	.content-title {
		height: 0.5rem;
		background: url("../../../assets/images/smtMonitor/sip/overall-title.png") no-repeat center;
		background-size: 30%;
		color: #e8e7e7;
		text-align: center;
		line-height: 0.5rem;
		font-size: 0.24rem;
		font-weight: 350;
		letter-spacing: 0em;
	}
	.chart {
		width: 50%;
		height: calc(100% - 20px);
		float: left;
	}
	.nums-overall-yield {
		display: inline-block;
		width: 50%;
		height: calc(100% - 20px);
		padding: 0.4rem 0;
		.nums {
			margin: 0.2rem 0.2rem 0;
			.num {
				font-size: 0.32rem;
				display: inline-block;
				margin-right: 0.1rem;
				width: 0.8rem;
				font-weight: bold;
			}
			.type {
				color: #9b9a9a;
				font-size: 0.18rem;
			}
			.white {
				color: #fff;
			}
			.blue {
				color: #0063ff;
			}
			.turquoise {
				color: #54defe;
			}
		}
	}
}
</style>

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Echarts波纹特效是通过使用echarts-liquidfill插件来实现的。你可以在官方网站https://www.npmjs.com/package/echarts-liquidfill找到该插件的详细信息。\[1\] 要使用波纹特效,你需要引入Echarts.min.js和Echarts-liquidfill.js文件,并在HTML中创建一个具有定义了宽度和高度的DOM容器。然后,你可以使用以下代码初始化echarts实例并指定图表的配置项和数据:\[2\] ```html <script src="echarts.min.js"></script> <script src="echarts-liquidfill.js"></script> <script type="text/javascript"> var myChart = echarts.init(document.getElementById('main')); var option = { series: \[{ type: 'liquidFill', data: \[0.6\] }\] }; myChart.setOption(option); </script> ``` 如果你想要自定义波纹特效的样式,你可以修改配置项中的相关属性。例如,你可以通过修改backgroundColor属性来设置背景颜色,通过修改title属性来设置标题的样式和位置,通过修改series属性中的data属性来控制数据展示,通过修改series属性中的color属性来控制波的颜色渐变等。\[3\] 希望这些信息对你有帮助! #### 引用[.reference_title] - *1* [Echarts球形波纹](https://blog.csdn.net/c_x_m/article/details/127558679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Echarts球图-多波纹和直线静止波纹](https://blog.csdn.net/weixin_43790703/article/details/122763100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Echarts 波图实现](https://blog.csdn.net/Liberal_w/article/details/129407075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值