Echarts中的熱力圖和漏斗圖(在Vue中使用熱力圖和漏斗圖)

熱力圖 (Heatmap)

Echarts的熱力圖用于展示兩個維度數據矩陣中的值分布情況。它通過在平面上劃分成多個矩形區域,并用不同的顏色填充這些區域來表示數據的大小或強度。顏色漸變從淺到深通常映射著數值從小到大,從而直觀展示數據的集中程度和分布模式。熱力圖常應用于分析時間序列、地理位置、交叉分類數據的相關性和密度,比如人口密度分布、時間-溫度變化等場景。

漏斗圖 (Funnel)

漏斗圖在Echarts中用來表現一系列流程中各階段數據的轉化情況,形態上像是一個倒置的漏斗,上部寬而下部窄。每個階段用一個梯形表示,梯形的寬度代表該階段的數量或比例,相鄰梯形間的差距直觀展示了轉化過程中數據的流失或縮減。漏斗圖適用于分析銷售漏斗、用戶轉化路徑、網頁瀏覽流程等場景,幫助用戶快速理解整個流程的效率和瓶頸所在。通過調整配置,還可以創建多系列的漏斗圖,用于對比不同條件下的轉化情況。

這里來簡單記錄一下


一. 熱力圖

1. 實現的圖表效果

2. 函數代碼

drawAcdtEcharts() {// 初始化 ECharts 實例,指定要渲染圖表的 DOM 容器var myChart = this.$echarts.init(document.querySelector(".btm_twoEcs"));// 定義小時數據const hours = ['12a', '1a', '2a', '3a', '4a', '5a', '6a',      // 凌晨12點到早上6點'7a', '8a', '9a', '10a', '11a',                 // 早上7點到中午11點'12p', '1p', '2p', '3p', '4p', '5p',            // 中午12點到下午5點'6p', '7p', '8p', '9p', '10p', '11p'            // 晚上6點到晚上11點];// 定義星期數據const days = ['星期一', '星期二', '星期三',                     // 星期一到星期三'星期四', '星期五', '星期六', '星期日'            // 星期四到星期日];// 定義熱力圖數據,并轉換數據格式const data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]].map(function (item) {// 交換數據的前兩項,用于適應 ECharts 的數據格式return [item[1], item[0], item[2] || '-']; });// 定義顏色const colors = ["#d07071"];     // 定義熱力圖的顏色// 配置 ECharts 選項var option = {// 提示框tooltip: {position: "top",            // 提示框顯示在頂部},// 網格配置grid: {height: "50%",             // 網格高度為容器高度的50%top: "10%",                // 網格距離頂部的距離},// X軸配置xAxis: {type: "category",          // X軸為類目軸data: hours,               // X軸的數據為小時數據splitArea: {show: true,              // 顯示網格區域},},// Y軸配置yAxis: {type: "category",          // Y軸為類目軸data: days,                // Y軸的數據為星期數據splitArea: {show: true,              // 顯示網格區域},},// 視覺映射配置visualMap: {min: 0,                    // 視覺映射的最小值max: 10,                   // 視覺映射的最大值calculable: true,          // 允許視覺映射組件可以交互orient: "horizontal",      // 水平放置視覺映射組件left: "center",            // 視覺映射組件居中bottom: "15%",             // 視覺映射組件距離底部15%},// 系列配置series: [{name: "Punch Card",     // 系列名稱type: "heatmap",        // 系列類型為熱力圖data: data,             // 系列的數據label: {show: true,           // 顯示標簽},emphasis: {itemStyle: {shadowBlur: 10,     // 陰影模糊度shadowColor: "rgba(0, 0, 0, 0.5)", // 陰影顏色},},},],};// 使用配置項設置 ECharts 實例option && myChart.setOption(option);// 添加窗口大小改變時的重繪監聽器window.addEventListener("resize", () => {myChart.resize(); // 重新調整圖表大小});},},

3.?初始化渲染Echarts

// 組件掛載之后,才可以獲取到元素
mounted() {// 在組件掛載后調用繪制函數this.drawAcdtEcharts();// 添加窗口大小改變時的重繪監聽器,防止報錯window.addEventListener("resize", () => {if (document.querySelector(".acdt_Ecs")) { // 檢查DOM元素是否存在this.drawAcdtEcharts();}});},},


二. 漏斗圖

1. 實現的圖表效果

2. 函數代碼

drawRiskEcharts() {// 初始化 ECharts 實例var myChart = this.$echarts.init(document.querySelector(".two_riskEcs"));// 定義漏斗圖的顏色const colors = ["#ff7965", "#ffa635", "#7ecd8d"];// 配置 ECharts 選項var option = {color: colors,                            // 應用顏色配置// backgroundColor: "#2c343c",            // 設置背景顏色tooltip: {trigger: "item",                        // 鼠標懸停時顯示提示框formatter: "{a} <br/>{b} : {c}",        // 提示框的格式},series: [{name: "漏斗圖",                       // 系列名稱type: "funnel",                       // 漏斗圖類型left: "10%",                          // 圖表左側位置top: 60,                              // 圖表上方位置bottom: 60,                           // 圖表下方位置width: "80%",                         // 圖表寬度min: 0,                               // 數據最小值max: 100,                             // 數據最大值minSize: "20%",                       // 漏斗圖最小部分的寬度maxSize: "100%",                      // 漏斗圖最大部分的寬度sort: "descending",                   // 按值降序排序gap: 2, // 各部分之間的間隔funnelAlign: "center",                // 設置漏斗圖對齊方式label: {show: true,                         // 顯示標簽position: "right",                  // 標簽位置// formatter: "{b}: {c}",           // 標簽內容格式,顯示名稱和數值},labelLine: {length: 10,                         // 標簽線長度lineStyle: {width: 1,                         // 標簽線寬度type: "solid",                    // 標簽線樣式},},itemStyle: {borderColor: "#fff",                // 項目的邊框顏色borderWidth: 1,                     // 項目的邊框寬度},emphasis: {label: {fontSize: 20,                     // 高亮標簽的字體大小},},data: [{ value: 60, name: "高風險" },       // 高風險數據{ value: 40, name: "中等風險" },     // 中等風險數據{ value: 20, name: "低風險" },       // 低風險數據],},],};// 使用配置項設置 ECharts 實例option && myChart.setOption(option);// 添加窗口大小改變時的重繪監聽器window.addEventListener("resize", () => {myChart.resize(); // 在窗口調整時重置圖表大小});},},

?3.?初始化渲染Echarts

// 組件掛載之后,才可以獲取到元素
mounted() {// 在組件掛載時調用繪制函數this.drawRiskEcharts();// 添加窗口大小改變時的重繪監聽器,防止報錯window.addEventListener("resize", () => {if (document.querySelector(".risk_Ecs")) {this.drawRiskEcharts();}});},},

三. 因為這里使用的是全局注冊,在main.js中寫入如下,所以可以使用 this.$echarts


import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts;

四. Echarts,更多操作

Echarts官網icon-default.png?t=N7T8https://echarts.apache.org/zh/index.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42304.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mojolicious測試驅動開發:單元與集成測試的藝術

標題&#xff1a;Mojolicious測試驅動開發&#xff1a;單元與集成測試的藝術 Mojolicious是一個現代化的Perl Web開發框架&#xff0c;它不僅提供了強大的Web應用開發能力&#xff0c;還內置了豐富的測試工具來支持單元測試和集成測試。本文將深入探討如何在Mojolicious中進行…

人工智能期末復習簡答題

簡答: 子句集的化簡(1).消去連接詞”—>”和”<—>” (2)減少否定符號的轄域 (3)對變元標準化 (4)化為前束范式 (5)消去存在量詞 (6)化為Skolem標準形 (7)消去全稱量詞 (8)消去合取詞 (9)更換變元名稱 2.在狀態空間搜索中,Open表與Close…

半同步主從復制

半同步主從復制的概念 半同步主從復制&#xff08;Semisynchronous Replication, SBR&#xff09;是MySQL數據庫中的一種數據復制方式&#xff0c;它在異步復制的基礎上增加了一定程度的同步性&#xff0c;旨在提高數據安全性&#xff0c;減少數據丟失的風險。 半同步主從復制…

LeetCode 3101.交替子數組計數:等差數列求和(較詳題解)

【LetMeFly】3101.交替子數組計數&#xff1a;等差數列求和&#xff08;較詳題解&#xff09; 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/count-alternating-subarrays/ 給你一個二進制數組 nums 。 如果一個子數組中 不存在 兩個 相鄰 元素的值 相同 的情況&a…

階段三:項目開發---大數據開發運行環境搭建:任務8:安裝配置Redis

任務描述 知識點&#xff1a;安裝配置Redis 重 點&#xff1a; 安裝配置Redis 難 點&#xff1a;無 內 容&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即遠程字典服務&#xff0c;是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可…

【C++:運算符重載】

運算符重載 特點&#xff1a; 函數名由operator運算符組成 注&#xff1a; 不能通過其他符號創建新的操作符&#xff0c;只能使用C/C語法存在的操作符重載操作符必須有一個類類型參數&#xff0c;原因&#xff1a;不能重載操作符改變內置類型的行為當類成員操作符重載時&#…

web自動化(五)上傳文件

我們需要準備一個上傳文件的html&#xff0c;創建a.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文件上傳示例</title> </head> <body><form action"/upload"…

電路基礎知識匯總

1.0 串連&#xff0c;并聯&#xff0c;混連 串聯的定義 電路串聯是一種電路元件的連接方式&#xff0c;其中各個元件沿著單一路徑互相連接&#xff0c;形成一個連續的鏈。在串聯電路中&#xff0c;每個節點最多只連接兩個元件&#xff0c;這意味著電流只有一條路徑可以通過整個…

Apache Seata Mac下的Seata Demo環境搭建

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 Mac下的Seata Demo環境搭建&#xff08;AT模式&#xff09; 前言 最近因為工作需要&#xf…

Git教程

文章目錄 Git分布式版本控制工具版本控制器的方式常用命令遠程倉庫Tip Git分布式版本控制工具 ? Git是一個開源的分布式版本控制系統&#xff0c;可以有效、高速地處理從很小到非常大的項目版本管理。 ? Git是分布式的&#xff0c;Git不需要有中心服務器&#xff0c;我們每…

【感謝告知】本賬號內容調整,聚焦于Google賬號和產品的使用經驗和問題案例分析

親愛的各位朋友&#xff1a; 感謝您對本賬號的關注和支持&#xff01; 基于對朋友們需求的分析和個人興趣的轉變&#xff0c;該賬號從今天將對內容做一些調整&#xff0c;有原來的內容改為Google&#xff08;谷歌&#xff09;賬號和產品的使用經驗&#xff0c;以及相關問題的…

24西安電子科技大學經濟與管理學院—考研錄取情況

24西安電子科技大學—經理與管理學院—考研錄取統計 01、經理與管理學院各個方向 02、24經濟與管理近三年復試分數線對比 1、經管院24年院線相對于23年院線普遍下降2-15分&#xff0c;個別專業上漲4-10分。 2、經管院應用經濟學2024年院線350分&#xff1b;管理科學與工程院線…

java join與yield方法

join() join() 方法的主要作用是使當前線程&#xff08;調用 join() 方法的線程&#xff09;等待目標線程完成執行。當目標線程執行完畢后&#xff0c;當前線程才會繼續執行。 代碼示例&#xff1a; public class JoinExample {public static void main(String[] args) {Thr…

保研復習 | 數據結構

目錄 CH1?緒論☆ 數據項、數據元素、數據結構☆ 邏輯結構和存儲結構的區別☆ 順序存儲結構和鏈式存儲結構的比較☆ 算法的重要特性☆ 算法的復雜度 CH2?線性表☆ 單鏈表 CH3?棧、隊列和數組☆ 棧和堆是什么&#xff1f;☆ 棧在括號匹配中的應用☆ 棧在表達式求值中的應用☆ …

Linux|信號

Linux|信號 信號的概念信號處理的三種方式捕捉信號的System Call -- signal 1.產生信號的5種方式2.信號的保存2.1 core 標志位 2.信號的保存2.1 對pending 表 和 block 表操作2.2 阻塞SIGINT信號 并打印pending表例子 捕捉信號sigaction 函數驗證當前正在處理某信號&#xff0c…

數據庫SQL Server常用字符串函數

文章目錄 字符串函數 字符串函數 CONCAT:拼接字符串 CONCAT(COLUMN1,_,COLUMN2) AS COLCONVERT&#xff1a;轉換數據類型 CONVERT(data_type(length),data_to_be_converted,style)例如&#xff1a;CONVERT(VARCHAR(10),GETDATE(),110) SUBSTRING()&#xff1a;從字符串中返回…

java項目總結5

1.單列集合頂層接口Collction 集合體系結構 注意&#xff1a;因為Collection定義的方法是共性的&#xff0c;使用不能通過搜引來刪除&#xff0c;只能通過元素的對象進行刪除&#xff0c;返回值是boolean類型。例如我添加了"aaa"進List集合&#xff0c;刪除則要對象…

STM32-01 推挽輸出-點亮LED

本文以STM32中點亮LED為例&#xff0c;解讀推挽輸出的原理 推挽輸出介紹 所謂的推挽輸出&#xff0c;就是通過控制輸出控制模塊&#xff0c;打開或者關閉P-MOS或者N-MOS。 ─ 推挽模式下&#xff1a;輸出寄存器上的’0’激活N-MOS&#xff0c;而輸出寄存器上的’1’將激活P-M…

局部靜態變量實現的單例存在多個對象

文章目錄 背景測試代碼運行測試嘗試打開編譯器優化進一步分析 背景 業務中出現日志打印失效&#xff0c;發現是因為管理日志對象的單例在運行過程中存在了多例的情況。下面通過還原業務場景來分析該問題。 測試代碼 /* A.h */ #ifndef CALSS_A #define CALSS_A#include <…

打造屬于自己的腳手架工具并發布到npm倉庫

一、創建項目 使用 npm init -y 創建項目創建項目入口文件 index.js在 package.json 中添加 bin 字段使用 npm link 命令將文件映射至全局&#xff0c;使可以在本地測試 zp 命令 // "zp" 為用于全局執行腳手架的命令&#xff0c;vue-cli中使用的是vue命令 "bi…