【AI Study】第五天,Matplotlib(5)- 顏色映射

文章概要

本文詳細介紹 Matplotlib 的顏色映射功能,包括:

  • 顏色映射類型
  • 顏色映射設置
  • 數據標準化
  • 顏色條

顏色映射類型

pcolormesh

import matplotlib.pyplot as plt
import numpy as np# 創建網格數據
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))# 使用 pcolormesh 繪制
plt.figure(figsize=(8, 6))
plt.pcolormesh(X, Y, Z, cmap='viridis')
plt.colorbar()
plt.title('pcolormesh 示例')
plt.show()

contourf

# 使用 contourf 繪制
plt.figure(figsize=(8, 6))
plt.contourf(X, Y, Z, levels=20, cmap='viridis')
plt.colorbar()
plt.title('contourf 示例')
plt.show()# 設置輪廓線
plt.contourf(X, Y, Z, levels=20, cmap='viridis')
plt.contour(X, Y, Z, levels=20, colors='k', alpha=0.5)
plt.colorbar()

imshow

# 使用 imshow 繪制
plt.figure(figsize=(8, 6))
plt.imshow(Z, cmap='viridis', origin='lower',extent=[-3, 3, -3, 3])
plt.colorbar()
plt.title('imshow 示例')
plt.show()# 設置插值方法
plt.imshow(Z, cmap='viridis', interpolation='bilinear')

scatter

# 創建散點數據
x = np.random.randn(100)
y = np.random.randn(100)
z = np.random.randn(100)# 使用 scatter 繪制
plt.figure(figsize=(8, 6))
plt.scatter(x, y, c=z, cmap='viridis')
plt.colorbar()
plt.title('scatter 示例')
plt.show()# 設置點大小
plt.scatter(x, y, c=z, cmap='viridis', s=100)

顏色映射設置

選擇顏色映射

# 使用內置顏色映射
plt.pcolormesh(X, Y, Z, cmap='viridis')  # 默認顏色映射
plt.pcolormesh(X, Y, Z, cmap='plasma')   # 等離子體
plt.pcolormesh(X, Y, Z, cmap='inferno')  # 地獄
plt.pcolormesh(X, Y, Z, cmap='magma')    # 巖漿
plt.pcolormesh(X, Y, Z, cmap='cividis')  # 色盲友好# 使用反轉的顏色映射
plt.pcolormesh(X, Y, Z, cmap='viridis_r')

創建自定義顏色映射

from matplotlib.colors import LinearSegmentedColormap# 創建自定義顏色映射
colors = ['#000000', '#ff0000', '#ffff00', '#ffffff']
cmap = LinearSegmentedColormap.from_list('custom_cmap', colors)# 使用自定義顏色映射
plt.pcolormesh(X, Y, Z, cmap=cmap)
plt.colorbar()
plt.title('自定義顏色映射')
plt.show()# 創建離散顏色映射
from matplotlib.colors import ListedColormap
colors = ['red', 'green', 'blue']
cmap = ListedColormap(colors)

第三方顏色映射

# 使用 seaborn 顏色映射
import seaborn as sns
plt.pcolormesh(X, Y, Z, cmap=sns.color_palette("husl", 256))# 使用 colorcet 顏色映射
import colorcet as cc
plt.pcolormesh(X, Y, Z, cmap=cc.cm.rainbow)

數據標準化

線性標準化

from matplotlib.colors import Normalize# 創建標準化對象
norm = Normalize(vmin=-1, vmax=1)# 使用標準化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)
plt.colorbar()
plt.title('線性標準化')
plt.show()# 自動標準化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=Normalize())

對數標準化

from matplotlib.colors import LogNorm# 創建對數標準化對象
norm = LogNorm(vmin=0.1, vmax=10)# 使用對數標準化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)
plt.colorbar()
plt.title('對數標準化')
plt.show()# 自動對數標準化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=LogNorm())

其他標準化方法

from matplotlib.colors import PowerNorm, SymLogNorm# 使用冪次標準化
norm = PowerNorm(gamma=0.5)
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)# 使用對稱對數標準化
norm = SymLogNorm(linthresh=0.1)
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)

顏色條

添加顏色條

# 基本顏色條
plt.pcolormesh(X, Y, Z, cmap='viridis')
plt.colorbar()# 設置顏色條位置
plt.colorbar(orientation='horizontal')
plt.colorbar(location='left')
plt.colorbar(location='right')

自定義顏色條

# 設置顏色條標簽
plt.colorbar(label='數值')# 設置顏色條刻度
plt.colorbar(ticks=[-1, 0, 1])# 設置顏色條格式
plt.colorbar(format='%.1f')# 設置顏色條大小
plt.colorbar(fraction=0.046, pad=0.04)

顏色條位置

# 使用 axes 位置
cbar_ax = plt.axes([0.85, 0.1, 0.05, 0.8])
plt.colorbar(cax=cbar_ax)# 使用 GridSpec
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(1, 2, width_ratios=[20, 1])
ax = plt.subplot(gs[0])
cbar_ax = plt.subplot(gs[1])
plt.colorbar(cax=cbar_ax)

總結

顏色映射部分涵蓋了:

  1. 顏色映射類型(pcolormesh、contourf、imshow、scatter)
  2. 顏色映射設置(選擇顏色映射、創建自定義顏色映射、第三方顏色映射)
  3. 數據標準化(線性標準化、對數標準化、其他標準化方法)
  4. 顏色條(添加顏色條、自定義顏色條、顏色條位置)

掌握這些顏色映射功能對于創建專業的可視化圖表至關重要,它可以幫助我們:

  • 展示數據的分布特征
  • 突出數據的變化趨勢
  • 增強圖表的可讀性
  • 提升圖表的專業性

建議在實際項目中注意:

  • 選擇合適的顏色映射
  • 考慮數據標準化方法
  • 注意顏色條的位置和樣式
  • 保持圖表的清晰度
  • 考慮色盲友好性
  • 注重整體美觀性

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

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

相關文章

DB2中合理使用INCLUDE關鍵字創建索引

DB2中合理使用 INCLUDE 關鍵字創建索引 1. 為何還需要 INCLUDE?——從索引的兩大痛點說起 查詢想“只讀索引不回表”,卻又不想把列都做鍵 → 聯合索引空間膨脹,更新放大。唯一索引定位快,但只能返回鍵列數據 → 仍需 I/O 跳回數據…

基于Spring Boot的民宿管理系統設計與實現

目錄 一.🦁前言二.🦁開源代碼與組件使用情況說明三.🦁核心功能1. ?算法設計2. ?Spring Boot框架3. ?Vue.js框架4. ?部署項目 四.🦁演示效果1. 管理員模塊1.1 瀏覽后臺首頁1.2 預訂信息管理1.3 入住信息管理1.4 退房信息管理1.…

大數據系統架構實踐(一):Zookeeper集群部署

大數據系統架構實踐(一):Zookeeper集群部署 文章目錄 大數據系統架構實踐(一):Zookeeper集群部署一、Zookeeper簡介二、部署前準備三、部署Zookeeper集群1. 下載并解壓安裝包2. 配置zoo.cfg3. 設置日志目錄…

《道德經》:探尋古老智慧中的哲學之光

我強烈推薦4本可以改變命運的經典著作: 《壽康寶鑒》在線閱讀白話文《欲海回狂》在線閱讀白話文《陰律無情》在線閱讀白話文《了凡四訓》在線閱讀白話文 《道德經》作為道家經典,短短五千言,卻字字珠璣,蘊含著超越時空的哲學智慧。…

科技賦能民生:中建海龍為民生改善注入新動力

在社會發展的進程中,民生改善始終占據著核心地位。住房、基礎設施建設等民生領域的進步,直接關系到民眾的生活質量與幸福感。中建海龍科技有限公司(以下簡稱“中建海龍”)作為建筑行業的創新引領者,憑借其強大的科技實…

BI 賦能,打造數據可視化看板新體驗

BI 賦能,打造數據可視化看板新體驗 引言 在當今數字化時代,數據成為企業決策的重要依據。如何從海量的數據中提取有價值的信息,并以直觀、易懂的方式呈現出來,是企業面臨的重要挑戰。商業智能(BI)工具的出…

vue2設置自定義域名跳轉

需求:首次登錄域名為aa.com,之后登錄系統后在系統內某個模塊設置三級域名為second,之后退出登錄到aa.com,登錄進入系統后域名自動變為second.aa.com,最后退出的域名也是second.aa.com,通過不同的域名配置動態的登錄頁面…

“地標界愛馬仕”再拓疆域:世酒中菜聯袂赤水金釵石斛定義中國GI

“地標界愛馬仕”再拓疆域:世酒中菜聯袂赤水金釵石斛,定義中國GI奢侈品新高度 ——中世國際與貴州斛滿多戰略合作簽約儀式在赤水舉行 赤水市,2025年5月18日——被譽為“地標界愛馬仕”的頂級奢侈品牌世酒中菜 (世界酒中國菜全球…

零基礎、大白話,Vue3全篇通俗療法(上):基礎知識【看得懂】

前言 最近有個小朋友想了解Vue前端技術,但他只懂一些HTML基礎,讓我用最簡單的方式講解。于是就有了這篇面向初學者的博文。 老手請繞行,本文專為新手準備。如果發現用詞不當的地方歡迎留言指正,覺得對新手有幫助的話請收藏點贊。 …

JavaScript性能優化實戰

JavaScript性能優化實戰技術文章大綱 性能優化的重要性 解釋為什么性能優化對用戶體驗和業務指標至關重要討論核心Web指標(LCP、FID、CLS)與JavaScript性能的關系 代碼層面優化 減少DOM操作,使用文檔片段或虛擬DOM避免頻繁的重繪和回流&a…

考研英語作文評分標準專業批改

考研英語作文專業批改經過官方評分標準嚴格對標,徹底改變你的作文提升方式,打開 懂試帝小程序 直達批改。 🎯 批改服務核心優勢 ? 官方標準嚴格對標 完全按照考研英語官方五檔評分制,從內容完整性、組織連貫性、語言多樣性到語…

智能群躍小助手發布說明

1.初次登陸需要授權碼 2.社群維護頁面 3.產品營銷頁面

SAM2論文解讀-既實現了視頻的分割一切,又比圖像的分割一切SAM更快更好

code:https://github.com/facebookresearch/sam2/tree/main demo:https://sam2.metademolab.com/ paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 這是SAM 這是SAM2 Facebook出品,繼SAM在圖像上分割…

WPF 的RenderTransform使圖標旋轉180°

只是記錄一下思想&#xff1a; 本來想找兩個對稱的圖標給按鈕用&#xff0c;但是另一個找不到&#xff0c;就想到可不可以旋轉180實現另一個圖標的效果&#xff0c;問了一下DeepSeek&#xff1a; <Path Width"30" Height"30" Margin"1"Data…

Matplotlib 繪圖庫使用技巧介紹

目錄 前言 Matplotlib 簡介 快速入門 圖形結構解剖 常用繪圖函數 子圖與布局 單行多列子圖&#xff1a; 網格布局&#xff1a; 自定義位置&#xff1a; 樣式與標注 中文字體與科學計數 圖例、網格、坐標軸 動態圖與動畫 三維繪圖 常見問題與技巧 前言 Matplotli…

【Java基礎算法】1.相向指針練習

??博客主頁:程序員葵安 ??感謝大家點贊????收藏?評論??? 一、兩數之和 Ⅱ(167) 1.1 題目介紹 給你一個下標從 1 開始的整數數組 numbers ,該數組已按 非遞減順序排列 ,請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 nu…

“開放原子園區行”太原站:openKylin以開源之力,賦能產業發展

在數字化與智能化浪潮驅動下&#xff0c;開源技術已成為全球科技創新與產業升級的核心引擎&#xff0c;并為培育新質生產力開辟關鍵路徑。為加速開源生態建設&#xff0c;賦能區域經濟高質量發展&#xff0c;由開放原子開源基金會、山西省工業和信息化廳、山西轉型綜合改革示范…

【Elasticsearch】自定義相似性算法

在 Elasticsearch 中&#xff0c;可以通過自定義相似度算法來優化搜索結果的相關性。以下是幾種常見的自定義相似度算法的方法&#xff1a; 1. 使用內置相似度算法 Elasticsearch 默認使用 BM25 算法&#xff0c;但也可以切換到其他內置的相似度算法&#xff0c;如 TF-IDF 或布…

【對比】DeepAR 和 N-Beats

1. DeepAR 1.1 核心思想 提出者&#xff1a;亞馬遜&#xff08;Amazon&#xff09;團隊于2018年提出。目標&#xff1a;針對多變量時間序列進行概率預測&#xff08;Probabilistic Forecasting&#xff09;&#xff0c;輸出預測值的分布&#xff08;如均值、方差、置信區間&a…

Spring Boot單元測試終極指南:從環境搭建到分層測試實戰

Spring Boot測試終極指南&#xff1a;從環境搭建到分層測試實戰 掌握MockMvc與分層測試策略&#xff0c;讓你的代碼質量提升一個維度 一、環境搭建&#xff1a;Maven依賴深度解析 Spring Boot測試的核心依賴在pom.xml中配置如下&#xff1a; <dependencies><!-- 核心…