echarts实现堆叠图加折线混合图

news2025/1/22 9:10:29

vue组件实现代码:

<template>
	<div :id="chartId" style="width: 100%; height: 300px"></div>
</template>

<script>
	import * as echarts from "echarts";
	export default {
		name: "doubleStackLine", //双区域图
		props: {
			chartId: {
				type: String,
				default: "doubleStackLine",
			},
		},
		data() {
			return {};
		},
		mounted() {
			this.initChart();
		},
		methods: {
			initChart() {
				// 基于准备好的dom,初始化echarts实例
				let chartDom = document.getElementById(this.chartId);
				let myChart = echarts.init(chartDom);
				const option = this.getChartOption();
				option && myChart.setOption(option);
			},
			getChartOption() {
				const option = {
					color: ["#0499FF", "rgba(252, 240, 30, .7)", "#2DF4F2"],
					// 提示窗
					tooltip: {
						textStyle: {
							color: "#fff", // 文本颜色
							fontSize: 20, // 文本大小
						},
						backgroundColor: "rgba(0,43,121,0.8)", // 背景颜色
						borderColor: "#0B61B8", // 边框颜色
						borderWidth: 1, // 边框宽度
						trigger: "axis",
						axisPointer: {
							type: "line",
							lineStyle: {
								color: {
									type: "linear",
									x: 0,
									y: 0,
									x2: 0,
									y2: 1,
									colorStops: [{
											offset: 0,
											color: "rgba(80, 198, 255, .15)", // 0% 处的颜色
										},
										{
											offset: 1,
											color: "rgba(80, 198, 255, .15)", // 100% 处的颜色
										},
									],
									global: false, // 缺省为 false
								},
								width: 44,
								type: "solid",
							},
						},
						position: function(point, params, dom, rect, size) {
							let x = 0; // x坐标位置
							let y = 0; // y坐标位置
							// 当前鼠标位置
							let pointX = point[0];
							let pointY = point[1];
							// 提示框大小
							let boxWidth = size.contentSize[0];
							let boxHeight = size.contentSize[1];

							// boxWidth > pointX 说明鼠标左边放不下提示框
							if (boxWidth > pointX) {
								x = pointX + 10;
							} else {
								// 左边放的下
								x = pointX - boxWidth - 10;
							}

							// boxHeight > pointY 说明鼠标上边放不下提示框
							if (boxHeight > pointY) {
								y = 5;
							} else {
								// 上边放得下
								y = pointY - boxHeight;
							}
							return [x, y];
						}
					},
					dataZoom: [{
						type: 'inside',
						xAxisIndex: [0],
						start: 0,
						end: 100
					}],
					legend: {
						data: ["管道气", "LNG", "增速"],
						// 设置图例项的间隔为20
						itemGap: 50,
						textStyle: {
							color: "#fff",
							fontSize: 20,
							fontFamily: "siyuan",
						},
					},
					grid: {
						top: 60,
						left: 60,
						right: 60,
						bottom: 60,
					},
					xAxis: {
						type: "category",
						axisTick: {
							show: false, //x轴刻度尺
						},
						axisLine: {
							// show: false, //x轴刻度尺
							lineStyle: {
								color: "#2CBFFF",
							},
						},
						splitNumber: 5, // 增加 X 轴的网格线密度
						axisLabel: {
							textStyle: {
								color: "#C5C5C5", // 修改为你想要的颜色,
								fontSize: 20,
								fontFamily: "siyuan",
							},
						},
						data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
					},
					yAxis: [{
							type: "value",
							name: "亿方",
							nameTextStyle: {
								color: "#97A6B5", // 修改为你想要的颜色,
								fontSize: 20,
								fontFamily: "siyuan",
								// align: 'left', // 设置对齐方式
								offset: [0, 10], // 设置偏移量,第一个值是水平偏移,第二个值是垂直偏移,
								padding: [0, 40, 10, 0], // 上右下左的偏移量,单位px
							},
							position: "left",
							axisTick: {
								show: false, //x轴刻度尺
							},
							axisLine: {
								show: false, //y轴线条
								lineStyle: {
									color: "#2CBFFF",
								},
							},
							splitLine: {
								show: true, // 显示网格线
								lineStyle: {
									// 网格线的样式
									color: "#2A425F", // 网格线颜色
									type: "dashed", // 网格线类型
								},
							},
							axisLabel: {
								textStyle: {
									color: "#97A6B5", // 修改为你想要的颜色,
									fontSize: 20,
									fontFamily: "siyuan",
								},
							},
						},
						{
							type: "value",
							name: "%",
							nameTextStyle: {
								color: "#97A6B5", // 修改为你想要的颜色,
								fontSize: 20,
								fontFamily: "siyuan",
								// align: 'left', // 设置对齐方式
								offset: [0, 10], // 设置偏移量,第一个值是水平偏移,第二个值是垂直偏移,
								padding: [0, 0, 10, 40], // 上右下左的偏移量,单位px
							},
							position: "right",
							axisTick: {
								show: false, //x轴刻度尺
							},
							axisLine: {
								show: false, //y轴线条
								lineStyle: {
									color: "#2CBFFF",
								},
							},
							splitLine: {
								show: true, // 显示网格线
								lineStyle: {
									// 网格线的样式
									color: "#2A425F", // 网格线颜色
									type: "dashed", // 网格线类型
								},
							},
							axisLabel: {
								textStyle: {
									color: "#97A6B5", // 修改为你想要的颜色,
									fontSize: 20,
									fontFamily: "siyuan",
								},
							},
						},
					],
					series: [{
							name: "管道气",
							type: "bar",
							stack: "bar",
							barWidth: 20, // 设置柱状图的宽度
							label: {
								show: true, // 显示标签
								position: 'right', // 标签位置
								formatter: '{c}', // {c} 表示数据值
								color: "#fff",
								fontFamily: "AvantiBold",
								fontSize: 20,
								padding: [6, 6, 6, 8],
								// backgroundColor: {
								// 	image: require("@/assets/images/home/blueLandmark@2x.png")
								// }
							},
							data: [120, 49, 70, 232, 256, 767, 136, 162, 36, 200, 64, 33],
						},
						{
							name: "LNG",
							type: "bar",
							stack: "bar",
							barWidth: 20, // 设置柱状图的宽度
							label: {
								show: true, // 显示标签
								position: 'right', // 标签位置
								formatter: '{c}', // {c} 表示数据值
								color: "#fff",
								fontFamily: "AvantiBold",
								fontSize: 20,
								padding: [6, 6, 6, 8],
								// backgroundColor: {
								// 	image: require("@/assets/images/home/blueLandmark@2x.png")
								// }
							},
							data: [216, 59, 90, 264, 287, 707, 176, 122, 487, 188, 60, 23],
						},
						{
							type: "line",
							name: "增速",
							yAxisIndex: 1,
							data: [820, 932, 901, 934, 524, 754, 142],
							smooth: false, //面积图改成弧形状
							symbolSize: 12,
							// 修改折线点的样式
							itemStyle: {
								color: "#2DF4F2", // 点的颜色
								borderColor: "blue", // 点边框的颜色
								borderWidth: 2, // 点边框的宽度
							},
							// lineStyle: {
							// 	width: 2 // 设置线宽为5
							// },
							lineStyle: {
								width: 2, //外边线宽度
								color: "#2DF4F2", //外边线颜色
							},
							showSymbol: true, //去除面积图节点圆
						},
					],
				};

				return option;
			},
		},
	};
</script>

<style scoped lang="scss">
</style>

效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot漫画网站系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

istitle()方法——判断首字母是否大写其他字母小写

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 istitle()方法用于判断字符串中所有的单词首字母是否为大写而其他字母为小写。istitle()方法的语法格式如下&#xff1a; str.istitle() …

Vite: 高阶特性 Pure ESM

概述 ESM 已经逐步得到各大浏览器厂商以及 Node.js 的原生支持&#xff0c;正在成为主流前端模块化方案。 而 Vite 本身就是借助浏览器原生的 ESM 解析能力( type“module” )实现了开发阶段的 no-bundle &#xff0c;即不用打包也可以构建 Web 应用。不过我们对于原生 ESM 的…

数据倾斜优化:Hive性能提升的核心

文章目录 1. 定义2. 数据倾斜2.1 Map2.2 Join2.3 Reduce 3. 写在最后 1. 定义 数据倾斜&#xff0c;也称为Data Skew&#xff0c;是在分布式计算环境中&#xff0c;由于数据分布不均匀导致某些任务处理的数据量远大于其他任务&#xff0c;从而形成性能瓶颈的现象。这种情况在H…

==和equals的区别(面试题)

和equals有什么区别 对于基本数据类型&#xff0c;比较的是值是否相等&#xff0c;对于引用类型则是比较的地址是否相等&#xff1b;对于equals来说&#xff0c;基本数据类型没有equals方法&#xff0c;对于引用类型equals比较的是引用对象是否相同 那针对以上结论&#xff0c…

RabbitMq教程【精细版一】

一、引言 模块之间的耦合度过高&#xff0c;导致一个模块宕机后&#xff0c;全部功能都不能用了&#xff0c;并且同步通讯的成本过高&#xff0c;用户体验差。 RabbitMQ引言 二、RabbitMQ介绍 MQ全称为Message Queue&#xff0c;消息队列是应用程序和应用程序之间的通信方法。…

python工作目录与文件目录

工作目录 文件目录&#xff1a;文件所在的目录 工作目录&#xff1a;执行python命令所在的目录 D:. | main.py | ---data | data.txt | ---model | | model.py | | train.py | | __init__.py | | | ---nlp | | | bert.py | …

DIVE INTO DEEP LEARNING 56-60

文章目录 56 Gated Recurrent Unit(GRU)56.1 Motivation: How to focus on a sequence56.2 The concept of doors56.3 Candidate hidden state56.4 hidden state56.5 summarize56.6 QA 57 Long short-term memory network57.1 Basic concepts57.2 Long short-term memory netwo…

Linux 进程信号篇

文章目录 1. 生活中的信号2. 信号的概念3. 信号的产生3.1 系统调用3.2 软件条件3.2 异常3.3 Core和Term的区别 4. 信号的保存5. 信号的处理5.1 地址空间的进一步理解5.2 键盘输入数据的过程5.3 理解OS如何正常运行5.3.1 OS如何运行5.3.2 如何理解系统调用 5.4 内核态和用户态 6…

YOLO-V1

一、YOLO-V1整体思想与网络架构 1.1 YOLO算法整体思路解读 YOLO-V1: 经典的one-stage方法 把检测问题转化成回归问题&#xff0c;一个CNN就搞定了&#xff01; 可以对视频进行实时检测&#xff0c;应用领域非常广&#xff01; 核心思想&#xff1a; 1、预测一张图像中有哪些物…

AI大模型的崛起:第四次工业革命的前奏?

在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;大模型的崛起引起了广泛的关注和讨论。有人将其视为第四次工业革命的前奏&#xff0c;然而&#xff0c;这真的可能吗&#xff1f;本文将探讨这一问题&#xff0c;并对中国AI大模型的发展进行简要分析。…

鸿蒙开发Ability Kit(程序框架服务):【向用户申请授权】

向用户申请授权 当应用需要访问用户的隐私信息或使用系统能力时&#xff0c;例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等&#xff0c;应该向用户请求授权&#xff0c;这部分权限是user_grant权限。 当应用申请user_grant权限时&#xff0c;需要完成以下步骤&a…

推荐系统三十六式学习笔记:原理篇.模型融合14|一网打尽协同过滤、矩阵分解和线性模型

目录 从特征组合说起FM模型1.原理2.模型训练3.预测阶段4.一网打尽其他模型5.FFM 总结 在上一篇文章中&#xff0c;我们讲到了使用逻辑回归和梯度提升决策树组合的模型融合办法&#xff0c;用于CTR预估&#xff0c;给这个组合起了个名字&#xff0c;叫“辑度组合”。这对组合中&…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputEventClient (注入按键)】

注入按键 InputEventClient模块提供了注入按键能力。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。本模块接口均为系统接口&#xff0c;三方应用不支持调用。 导入模块 import inputEventCli…

小白学webgl合集-绘制有透视颜色不一样的立方体

效果 原理 结合透视矩阵和视觉矩阵进行绘制 知识点 01透视矩阵 透视矩阵将视图空间中的坐标转换为裁剪空间中的坐标&#xff0c;使得更远的物体看起来更小。 function perspectiveMatrix(fov, aspect, near, far) {const f 1.0 / Math.tan(fov / 2);const nf 1 / (near …

C++旋转点坐标计算

/// 获取A点绕B点旋转P度后的新坐标/// </summary>/// <param name"Angle">角度</param>/// <param name"CirPoint">圆心坐标</param>/// <param name"MovePoint">移动点的坐标</param>/// <param…

(单机架设教程)3D剑踪

前言 今天给大家带来一款单机游戏的架设&#xff1a;3D剑踪 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 3D剑踪 搭建教程 此游戏架设不需要虚拟机&#xff0c; 我们先解压 “3D剑踪.zip” &…

【ArcGIS AddIn插件】【可用于全国水旱灾害风险普查】全网最强洪水淹没分析插件-基于8邻域种子搜索算法-有源淹没分析算法

最近有很多GIS小伙伴咨询我关于基于8邻域种子搜索算法的有源淹没分析插件的使用方法及原理&#xff0c;咱们通过这篇文章给大家详细介绍下这款插件的运行机制。 一、插件类型及适用版本 本插件属于ArcGIS AddIn工具条插件&#xff0c;基于ArcGIS Engine10.2.2的开发环境开发的&…

某度,网盘免费加速,复活!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 有小伙伴反馈之前如下夸克网盘脚本的加速方法失效&#xff0c;小武今天测试&#xff0c;依旧正常使用&#xff01; 百度/迅雷/夸克&#xff0c;网盘免费加速&#xff0c;已破&#xf…

最强文生图模型Stable Diffusion 3 Medium 正式开源

Stability AI 宣布 Stable Diffusion 3 Medium 现已开源&#xff0c;是 Stable Diffusion 3 系列中最新、最先进的文本生成图像 AI 模型 —— 官方声称是 “迄今为止最先进的开源模型”&#xff0c;其性能甚至超过了 Midjourney 6。 Stable Diffusion 3 Medium 模型规格参数达到…