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
英文地址,請注明出處:http://en.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…