Python數據可視化高級實戰之二——熱力圖繪制探究

目錄

  一、熱力圖的作用

  二、熱力圖反映的信息類型

  三、熱力圖的典型應用場景

  1. 地球信息系統 (GIS)

  2. 城市交通分析

  3. 市場分析

  4. 用戶行為分析

  5. 網絡流量分析

  6. 傳染病傳播分析

  7. 社交媒體輿情分析

  四、Python 繪制熱力圖的關鍵技術要點

  1. 數據預處理

  2. 顏色選擇與漸變效果

  3. 圖形美化技巧

  4. 高級技巧

  五、章節總結


  一、熱力圖的作用

  熱力圖在多個領域中具有廣泛的應用和重要意義。首先,熱力圖能夠直觀地展示數據的分布、密度和集中程度,幫助分析人員快速識別數據的熱點區域和冷點區域,發現數據中的模式和異常。

  其次,熱力圖在市場分析和用戶行為分析中發揮著重要作用。通過分析用戶在網絡界面上的鼠標移動軌跡,熱力圖可以揭示用戶的興趣點和互動行為。此外,熱力圖還能分析用戶在瀏覽新聞或博客時的關注焦點,揭示哪些內容最能激發用戶的興趣。

  在醫學領域,熱力圖用于揭示數據在地理空間上的密度分布,幫助分析醫療資源的分布和人口密度等重要信息。通過觀察熱力圖,可以快速發現熱點區域,有助于針對性地進行資源分配和疾病防控工作。

  最后,熱力圖在科學研究和決策支持中也具有重要意義。

  熱力圖 (Heatmap) 通過顏色深淺來可視化二維數據的數值分布,其核心作用包括:

  •   數據模式識別:直觀展示數據的高低分布、聚類特征和異常值
  •   多變量關聯分析:在矩陣中同時呈現多個變量間的關系強度
  •   趨勢與異常檢測:通過顏色漸變快速識別數據熱點區域
  •   空間數據可視化:特別適合展示地理、時間等二維空間上的數據變化

  與其他圖表相比,熱力圖的優勢在于能夠在有限空間內展示高密度數據,同時保留數據的整體分布特征。

  二、熱力圖反映的信息類型

  •   數值大小:通過顏色深淺直接反映數值高低
  •   數據分布:集中趨勢、離散程度和異常值位置
  •   關聯關系:變量間的相關性強弱(如相關系數矩陣)
  •   時間 / 空間變化:地理區域差異或時間序列變化(如氣溫變化熱力圖)
  •   聚類特征:相似數值區域的聚集情況

  例如,在用戶行為分析中,熱力圖可以展示不同頁面元素的點擊頻率分布;在基因表達分析中,可呈現不同基因在不同條件下的表達水平差異。

  三、熱力圖的典型應用場景

  1. 地球信息系統 (GIS)

  用途:展示地理空間數據,如氣溫分布、地形高度、人口密度

  示例:2000-2024年全球各大洲平均氣溫熱力圖,用顏色梯度表示溫度變化

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from matplotlib.colors import LinearSegmentedColormap# 設置中文字體支持
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解決負號顯示問題def generate_sample_data():"""生成示例數據(實際應用中應替換為真實數據)"""years = list(range(2000, 2025))regions = ["非洲", "亞洲", "歐洲", "北美洲", "南美洲", "大洋洲"]# 創建隨機數據,模擬氣溫變化趨勢(逐年上升)np.random.seed(42)  # 設置隨機種子,確保結果可重現base_temps = np.array([25.5, 15.2, 10.3, 8.1, 19.8, 18.5])  # 各區域基準溫度trends = np.array([0.05, 0.07, 0.06, 0.08, 0.04, 0.05])     # 各區域溫度上升趨勢data = []for year in years:for i, region in enumerate(regions):# 計算該年份該區域的溫度:基準溫度 + 趨勢 * 年數 + 隨機波動temp = base_temps[i] + trends[i] * (year - 2000) + np.random.normal(0, 0.3)data.append([year, region, temp])return pd.DataFrame(data, columns=["年份", "區域", "溫度(°C)"])def create_temperature_heatmap(data):"""創建全球年平均氣溫變化熱力圖"""# 轉換數據為適合熱力圖的格式(年份作為行,區域作為列)pivot_data = data.pivot(index="區域", columns="年份", values="溫度(°C)")# 創建自定義顏色映射(藍色到紅色,表示低溫到高溫)colors = [(0.2, 0.2, 0.8), (0.8, 0.2, 0.2)]  # 藍到紅cmap = LinearSegmentedColormap.from_list("BlueRed", colors, N=100)# 創建畫布plt.figure(figsize=(14, 8))# 計算數據的最小值和最大值,用于顏色映射min_temp = pivot_data.values.min()max_temp = pivot_data.values.max()# 繪制熱力圖ax = sns.heatmap(pivot_data, cmap=cmap, annot=True, fmt=".1f", linewidths=.5,cbar_kws={"label": "溫度(°C)", "shrink": 0.8},vmin=min_temp, vmax=max_temp)# 添加標題和標簽plt.title("2000-2024年全球各區域年平均氣溫變化熱力圖", fontsize=16)plt.xlabel("年份", fontsize=12)plt.ylabel("區域", fontsize=12)# 旋轉x軸標簽plt.xticks(rotation=45)# 添加溫度變化趨勢線fig, ax2 = plt.subplots(figsize=(12, 6))for region in data["區域"].unique():region_data = data[data["區域"] == region]ax2.plot(region_data["年份"], region_data["溫度(°C)"], 'o-', label=region)ax2.set_title("2000-2024年全球各區域年平均氣溫變化趨勢&#

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

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

相關文章

配電網運行狀態綜合評估方法研究

1評估指標體系的構建 [1]冷華,童瑩,李欣然,等.配電網運行狀態綜合評估方法研究[J].電力系統保護與控制,2017,45(01):53-59. 1.1評估范圍 圖1為配電系統組成示意圖,其中A、B、C分別表示高、中、低壓配電系統。高壓配變(也稱主變)將35kV或110kV的電壓降到10kV&#…

Docker安裝MinIO對象存儲中間件

MinIO 是一個高性能、分布式的對象存儲系統,兼容 Amazon S3 云存儲服務協議,廣泛應用于企業存儲、大數據、機器學習和容器化應用等領域。以下是詳細介紹: 核心特點 兼容 S3 API :全面兼容 Amazon S3 API,這意味著使用…

HTML回顧

html全稱:HyperText Markup Language(超文本標記語言) 注重標簽語義,而不是默認效果 規則 塊級元素包括: marquee、div等 行內元素包括: span、input等 規則1:塊級元素中能寫:行內元素、塊級元素(幾乎什么都能寫) 規則2:行級元素中能寫:行內元素,但不能寫:塊…

JAVA Spring MVC+Mybatis Spring MVC的工作流程*,多表連查

目錄 注解總結 將傳送到客戶端的數據轉成json數據 **描述一下Spring MVC的工作流程** 1。屬性賦值 BeanUtils.copyProperties(addUserDTO,user); 添加依賴: spring web、mybatis framework、mysql driver Controller和ResponseBody優化 直接改成RestControl…

H2數據庫中一條insert語句到生成java對象到數據寫入磁盤的完整步驟

H2 數據庫將 SQL 語句轉換為磁盤存儲的全過程可以分為以下 8 個關鍵步驟,我們以 INSERT INTO users (id, name) VALUES (1, Alice) 為例詳細說明: 1. SQL 解析與語法樹生成 詞法分析:拆分語句為 INSERT、INTO、users 等 Token語法分析&#…

重磅升級!Google Play商店改版上線

5 月 21 日消息,Android Headline 今天(5 月 21 日)發布博文,報道稱在 2025 年 I/O 開發者大會上,谷歌宣布更新 Google Play 應用商店,在優化用戶體驗的同時,提升開發者收益。 本次更新中&…

Docker面試題(1)

什么是Docker 一個容器化平臺 形式是容器 將你的應用程序及所有依賴項打包在一起 確保應用程序在任何環境中無縫運行 什么是Docker鏡像 Docker鏡像是Docker容器的源代碼 用于創建容器 使用build命令創建鏡像 什么是 Docker容器 包括應用程序及所有的依賴項 作為操作系統的獨立進…

Ulisses Braga-Neto《模式識別和機器學習基礎》

模式識別和機器學習基礎 [專著] Fundamentals of pattern recognition and machine learning / (美)烏利塞斯布拉加-內托(Ulisses Braga-Neto)著 ; 潘巍[等]譯 推薦這本書,作者有自己的見解,而且提供代碼。問題是難度高,對于初學…

RabbitMQ的簡介

三個概念 生產者:生產消息的服務消息代理:消息中間件,如RabbitMQ消費者:獲取使用消息的服務 消息隊列到達消費者的兩種形式 隊列(queue):點對點消息通信(point-to-point) 消息進入隊…

自動切換剪貼板路徑中反斜杠為正斜杠

有時候需要將我們常見的win全路徑中反斜杠為正斜杠,每次用記事本,編輯替換非常麻煩,于是寫了這個工具,能自動修改剪貼板中的數據,只需要運行一下即可。 實現效果,將類似于下面的路徑: C:\User…

【時時三省】Python 語言----文件

目錄 1,文件打開 2, 文件關閉 3, 文件寫入 4, 文件讀出 5, 文件定位 6, 文件重命名 7, 復制文件 山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省 1,文件打開 file = open(file, mode, buffering, encoding, errors, newline, closefd, opener) 2, 文…

React 個人筆記 Hooks編程

作用 配合函數式編程,保證在不產生類的時候完成一個整體的組件 常用組件 useStateuseContextuseReduceruseEffectuseMemouseCallback 前三個值為自變量 后三者為因變量 前三者相當于其他編程函數的變量聲明,而后三者相當于對變量進行了(if now ! pr…

logits是啥、傅里葉變換

什么是logtis? 在深度學習的上下文中,logits 就是一個向量,下一步通常被投給 softmax/sigmoid 的向量。。 softmax的輸出是分類任務的概率,其輸入是logits層。 logits層通常產生-infinity到 infinity的值,而softmax層…

Adobe Illustrator學習備忘

1.移動畫板:需按住空格鍵加鼠標一塊才能拖動 2.放大縮小畫板:按住Alt鍵加鼠標滾輪 3.撤回:CtrlZ 4.鋼筆練習網站:The Bzier Game

【初識】內網滲透——基礎概念,基本工具使用

目錄 一、域,工作組,域控制器,活動目錄相關概念: 域環境: 工作組: 域控制器DC: 活動目錄AD: 二、內網的基本場景: 三、內網滲透基本測試方案: #案例1一基本信…

remove_const的工作原理及c++的類型推導

author: hjjdebug date: 2025年 05月 21日 星期三 12:51:57 CST descrip: remove_const的工作原理及c的類型推導 文章目錄 1. 簡單的程序代碼.2.std::remove_const_t 到底是怎樣工作的?2.1 測試代碼2.2 類型推導的調試手段.2.2.1 給類模板添加成員函數,讓它打印信息…

人臉識別,使用 deepface + api + flask, 改寫 + 調試

1. 起因, 目的, 感受: github deepface 這個項目寫的很好, 繼續研究使用這個項目,改寫 api。增加一個前端 flask app 2. 先看效果 3. 過程: 大力改寫原始項目中 api 這部分的代碼, 原始項目的文件結構太繁雜了: 我把…

三維表面輪廓儀的維護保養是確保其長期穩定運行的關鍵

三維表面輪廓儀是一種高精度測量設備,用于非接觸式或接觸式測量物體表面的三維形貌、粗糙度、臺階高度、紋理特征等參數。其主要基于光學原理進行測量。它利用激光或其他光源投射到被測物體表面,通過接收反射光或散射光,結合計算機圖像處理技…

Lambda表達式的高級用法

今天來分享下Java的Lambda表達式,以及它的高級用法。 使用它可以提高代碼的簡潔度,使代碼更優雅。 一、什么是lambda表達式 Lambda 表達式是 Java 8 引入的特性,用于簡化匿名內部類的語法,使代碼更簡潔,尤其在處理函…

31-35【動手學深度學習】深度學習硬件

1. CPU和GPU 1.1 CPU CPU每秒鐘計算的浮點運算數為0.15,GPU為12。GPU的顯存很低,16GB(可能32G封頂),CPU可以一直插內存。 左邊是GPU(只能做些很簡單的游戲,視頻處理),中…