vue3+Echarts实现立体柱状图

Echarts柱状图中文网:https://echarts.apache.org/examples/zh/index.html#chart-type-bar

效果展示:
在这里插入图片描述
主要实现过程是三部分的组合,最上面是一个椭圆,中间是正常的柱子,下方再加上一个椭圆,就出来立体的效果。

分别展示三段组合代码:

  1. 顶部的椭圆形(象形柱图):pictorialBar
      {type: "pictorialBar", // pictorialBar(象形柱图)symbolSize: [20, 5], // 图形的大小用数组分别比表示宽和高,也乐意设置成10相当于[10,10]symbolOffset: [0, 3], // 图形相对于原本位置的偏移z: 12, // 象形柱状图组件的所有图形的 z 值.控制图形的前后顺序.z 值小的图形会被 z 值大的图形覆盖.itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},]),},data: columnData.value,},
  1. 中间的柱子:bar
      {name: "发电量",type: "bar",barWidth: 20,itemStyle: {color: {x: 0,y: 0,x2: 0,y2: 1,type: "linear",global: false,colorStops: [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},],},},data: columnData.value,label: {show: true,position: "top",color: "#FFFFFF",fontSize: 14,},},
  1. 底部的椭圆形(象形柱图):pictorialBar
     {type: "pictorialBar",symbolSize: [20, 10],symbolOffset: [0, -5],z: 12,symbolPosition: "end",itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},]),},data: columnData.value,},

整体代码如下:

<template><divid="stereoscopicChart"style="width: 100%; height: 270px"></div>
</template><script setup lang="ts">
import { onMounted, ref } from "vue";
import * as echarts from "echarts";
// 横坐标data数据
const xData = ref(["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",
]);
// 柱状data数据
const columnData = ref([394, 194, 287, 189, 139, 420, 385, 239, 279, 379, 277, 237,
]);let myStereoscopicChart: echarts.ECharts | null = null;
const showStereoscopicEcharts = () => {if (!myStereoscopicChart) {const stereoscopicChartDom = document.getElementById("stereoscopicChart");myStereoscopicChart = echarts.init(stereoscopicChartDom);}const stereoscopicOption = {tooltip: {trigger: "axis",formatter: "{b}<br/> 发电量   {c}kWh",type: "line",axisPointer: {lineStyle: {color: "#17A8A0",},},backgroundColor: "rgba(7,18,26, 1)",borderWidth: 0,textStyle: {color: "#fff",fontSize: 14,align: "left",},},// 图例legend: {show: false,},// 图表位置grid: {left: "5%",right: "5%",top: "18%",bottom: "0%",containLabel: true,},xAxis: [{type: "category",axisLine: {lineStyle: {color: "#415264",width: 1,type: "solid",},},axisLabel: {color: "rgba(255,255,255,0.6)",fontSize: 12,},axisTick: {show: false,},data: xData.value,},],yAxis: [{name: "发电量(kWh)",type: "value",axisTick: {show: false,},axisLine: {lineStyle: {color: "rgba(255,255,255,0.2)",},},axisLabel: {color: "rgba(255,255,255,0.2)",fontSize: 12,},splitLine: {lineStyle: {color: "rgba(255,255,255,0.2)",type: "dashed",},},},],series: [// 底部的椭圆形(象形柱图):pictorialBar{type: "pictorialBar", // pictorialBar(象形柱图)symbolSize: [20, 5], // 图形的大小用数组分别比表示宽和高,也乐意设置成10相当于[10,10]symbolOffset: [0, 3], // 图形相对于原本位置的偏移z: 12, // 象形柱状图组件的所有图形的 z 值.控制图形的前后顺序.z 值小的图形会被 z 值大的图形覆盖.itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},]),},data: columnData.value,},{name: "发电量",type: "bar",barWidth: 20,itemStyle: {color: {x: 0,y: 0,x2: 0,y2: 1,type: "linear",global: false,colorStops: [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},],},},data: columnData.value,label: {show: true,position: "top",color: "#FFFFFF",fontSize: 14,},},{type: "pictorialBar",symbolSize: [20, 10],symbolOffset: [0, -5],z: 12,symbolPosition: "end",itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "#17A8A0",},{offset: 1,color: "#5AEA80",},]),},data: columnData.value,},],};stereoscopicOption && myStereoscopicChart.setOption(stereoscopicOption);
};
const resizeChart = () => {if (myStereoscopicChart) {myStereoscopicChart.resize();}
};
onMounted(() => {showStereoscopicEcharts();window.addEventListener("resize", resizeChart);
});
</script>

🌻 Everyday is a second chance.

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

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

相关文章

【UE5】虚幻引擎小百科

一、类名前面的大写字母的含义是什么UE5常见前缀分类表前缀含义实例用于AActorACharacter&#xff0c;AWeaponBase可放入世界中的对象&#xff08;有位置、可碰撞等&#xff09;UUObject派生类UUserWidget&#xff0c;UWeaponComponent引擎对象、逻辑模块&#xff0c;不具备Tra…

【Linux系统】vim编辑器 | 编译器gcc/g++ | make/Makefile

1. vim编辑器一、历史发展与Vim vs Vi的区别起源与演进Vi&#xff08;1976年&#xff09; &#xff1a;由Bill Joy开发&#xff0c;嵌入BSD Unix系统&#xff0c;是首个面向屏幕的文本编辑器&#xff0c;但功能有限&#xff08;如无多级撤销&#xff09;。Vim&#xff08;1991年…

国产飞腾主板,赋能网络安全防御硬手段

​ 当前&#xff0c;网络安全形势严峻&#xff0c;网络攻击手段不断翻新&#xff0c;从数据泄露到电脑中毒&#xff0c;企业、机构乃至国家的数字资产都面临着巨大风险。在此背景下&#xff0c;国产硬件技术的突破对筑牢网络安全防线意义重大。 高能计算机基于市场需求&#…

Spring AI 概述与架构设计

目录一、前言二、简介三、核心能力概览四、理解模块架构图五、模型适配能力六、最小应用示例七、与传统 LLM 调用相比八、总结九、参考一、前言 在 AI 正以前所未有的速度“下沉”到各类系统与业务的当下&#xff0c;Spring 官方推出的 Spring AI 项目&#xff0c;为 Java 开发…

UI前端与数字孪生融合新领域:智慧环保的污染源监测与治理

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;数字孪生重构智慧环保的技术范式在环境污染治理压力持续增大的背景下&…

【go/wails】wails入门系列(一)环境安装与demo

文章目录说在前面go安装nodejs安装wails创建项目运行说在前面 操作系统&#xff1a;win11go版本&#xff1a;1.24.4nodejs版本&#xff1a;v22.16.0wails版本&#xff1a;v2.10.1 go安装 官网 这里 下载安装即可 nodejs 官网 这里 下载安装即可 安装wails 设置go国内代理g…

linux qt 使用log4cpp库

一、日志库下载 下载地址&#xff1a;https://log4cpp.sourceforge.net/二、日志库解压&#xff0c;编译 1.将文件夹解压出来2.进入文件夹内部&#xff0c;打开终端3.终端中依次输入以下命令 mkdir build ./configure --prefix$(pwd)/build make make install 一般来说不会报错…

探索阿里云Data Integration:数据同步的魔法工具

引言在当今数字化时代&#xff0c;数据已成为企业的核心资产&#xff0c;如同企业发展的 “燃料”&#xff0c;驱动着业务的增长与创新。从用户行为数据到业务运营数据&#xff0c;从市场趋势数据到供应链数据&#xff0c;每一个数据点都蕴含着巨大的价值&#xff0c;能够为企业…

【Java面试】Redis的poll函数epoll函数区别?

Redis 在选择 poll 和 epoll 时主要基于性能需求、连接规模、操作系统支持等因素。以下是具体场景的对比与选择建议&#xff1a;1. 何时使用 poll 函数&#xff1f;适用场景&#xff1a; 跨平台兼容性需求&#xff1a;poll 在几乎所有操作系统&#xff08;如 Windows、BSD、Lin…

RPC--RPCHandler的实现

在RPC框架中&#xff0c;Handler用于接收RpcRequest&#xff0c;经过处理后返回RpcResponseSlf4jpublic class RpcRequestHandler {private final ServiceProvider serviceProvider;//获取一个单例模式的服务提供类public RpcRequestHandler() {serviceProvider SingletonFact…

C#读取文件夹和文件列表:全面指南

C#读取文件夹和文件列表&#xff1a;全面指南 在 C# 开发中&#xff0c;经常需要获取文件夹中的文件列表或子文件夹结构&#xff0c;例如文件管理器、批量处理工具、备份程序等场景。本文将详细介绍 C# 中读取文件夹和文件列表的各种方法&#xff0c;包括基础操作、递归遍历、过…

从小白到进阶:解锁linux与c语言高级编程知识点嵌入式开发的任督二脉(1)

【硬核揭秘】Linux与C高级编程&#xff1a;从入门到精通&#xff0c;你的全栈之路&#xff01;第一部分&#xff1a;初识Linux与环境搭建&#xff0c;玩转软件包管理——嵌入式开发的第一道“坎”嘿&#xff0c;各位C语言的“卷王”们&#xff01;你可能已经习惯了在Windows或m…

.net开源库SignalR

.NET开源库SignalR&#xff1a;打造实时Web应用的利器 在当今的Web开发领域&#xff0c;实时性已经成为了许多应用的核心需求。无论是实时聊天、实时数据监控还是实时游戏&#xff0c;都需要服务器能够及时地将数据推送给客户端。而.NET开源库SignalR&#xff0c;正是满足这一…

SQL Server不同场景批量插入数据的方式详解

INSERT INTO...VALUES多行语法 该方法适用于单次插入少量数据(通常<1000行),语法简洁直观。示例: INSERT INTO Employees (EmployeeID, Name, Department) VALUES (101, Zhang San, IT),(102, Li Si, HR),(103, Wang Wu, Finance)优点:语法简单易理解,适合开发测试环…

Day08-Flask 或 Django 简介:构建 Web 应用程序

Flask 或 Django 简介&#xff1a;构建 Web 应用程序 网络开发领域提供了丰富的工具和框架&#xff0c;而 Python 作为一门多功能的语言&#xff0c;在构建健壮且可扩展的 Web 应用方面脱颖而出。本课程将作为你使用 Python 进行 Web 开发的入门指南&#xff0c;特别聚焦于两个…

k8s多集群管理中的联邦和舰队如何理解?

在 Kubernetes 多集群管理中&#xff0c;联邦&#xff08;Federation&#xff09;和舰队&#xff08;Fleet&#xff09;是两种不同的方法&#xff0c;用于管理和协调多个 Kubernetes 集群。下面是对这两种方法的详细解释&#xff1a; 联邦&#xff08;Federation&#xff09; K…

Docker部署MySQL镜像

1.拉取镜像 # 拉取指定版本的MySQL镜像 docker pull mysql:8.02.创建挂载目录 # 自己创建好如下三个文件夹 路径任意 [rootiZuf6aigs7rxe6f6oifq7vZ mysql]# ll 总用量 12 drwxr-xr-x 2 root root 4096 7月 7 10:25 config drwxr-xr-x 2 root root 4096 6月 26 16:43 data d…

【网络】Linux 内核优化实战 - net.ipv4.ip_local_reserved_ports

目录一、参数作用二、默认值与格式三、典型应用场景四、配置方法五、注意事项六、查看当前配置在Linux系统的TCP/IP网络配置中&#xff0c;net.ipv4.ip_local_reserved_ports 是一个关键内核参数&#xff0c;用于指定禁止系统自动分配的本地端口范围。这些端口会被“预留”出来…

期待在 VR 森林体验模拟中实现与森林的 “虚拟复现”​

VR 森林体验模拟&#xff0c;无疑是科技与自然领域一次极具开创性意义的奇妙碰撞。它借助前沿的虚拟现实技术&#xff0c;以别出心裁、独树一帜的方式&#xff0c;为我们精心打造并带来了一场前所未有的森林探索奇幻之旅 。​在教育领域&#xff0c;于中小学的自然科学课堂上&a…

Qt:QLabel、LCD Number、QProgressBar、QCalendarWidget

目录 一、QLabel 1.属性 2.设置文本格式 3.设置图片 4.设置文本对齐方式 5.设置自动换行 6.设置缩进 7.设置边距 8.设置伙伴关系 二、LCD Number 1.属性 2.Qt仅允许主线程修改界面 三、QProgressBar 属性 四、QCalendarWidget 属性 一、QLabel 同样的&#x…