用 Python 繪制精美雷達圖:多維度材料屬性對比可視化全指南

🌟 為什么選擇雷達圖?從材料科學到多維數據對比的可視化利器

在科研和數據分析領域,當我們需要同時展示多個維度的數據對比時,傳統的柱狀圖或折線圖往往顯得力不從心。這時候,雷達圖(Radar Chart) 就像一位全能選手,以其獨特的環形布局,讓多維數據的對比變得直觀又美觀。

比如在材料科學中,我們可能需要同時對比不同合金的屈服強度、抗拉強度、延伸率等多個性能指標。想象一下,當四種不同的鐵基合金材料的七項關鍵屬性擺在你面前,如何一眼看出它們的優勢和短板?雷達圖正是為解決這類問題而生 —— 它用輻射狀的坐標軸代表不同維度,用閉合區域的面積直觀反映綜合性能,讓數據對比瞬間 “立體化”!

📊 代碼解析:一步步構建材料屬性雷達圖

下面我們通過一段完整的 Python 代碼,手把手教你繪制材料科學領域的雷達圖。這段代碼不僅能生成美觀的可視化結果,還隱藏著許多可以靈活定制的 “彩蛋” 哦~


import numpy as npimport matplotlib.pyplot as plt# 設置隨機種子,確保結果可復現np.random.seed(42)# 定義材料屬性類別(這是可替換的第一處!)categories = ["屈服強度", "極限抗拉強度", "斷裂伸長率","UTS×EF", "飽和磁感應強度", "矯頑力", "電阻率"]N = len(categories)# 生成四組材料數據(這是可替換的第二處!)data = {"M-MCA": np.random.uniform(5, 10, N),"Fe-49Co-2V": np.random.uniform(2, 8, N),"Fe-78.5Ni": np.random.uniform(1, 6, N),"Fe-4Si": np.random.uniform(1, 9, N)}# 計算雷達圖角度(閉合圓環的關鍵!)angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()angles += angles[:1] # 閉合圓環,讓最后一個點連接到第一個點# 創建畫布fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))# 設置坐標軸標簽(維度名稱)plt.xticks(angles[:-1], categories, fontsize=12, fontweight='bold')# 設置徑向刻度(數值范圍)ax.set_rlabel_position(0)plt.yticks([2, 4, 6, 8, 10], ["2", "4", "6", "8", "10"], color="grey", size=10)plt.ylim(0, 10)# 定義各材料的樣式(顏色、標記、填充透明度)styles = {"M-MCA": {"color": "#00b386", "marker": "v", "alpha_fill": 0.25},"Fe-49Co-2V": {"color": "dimgray", "marker": "o", "alpha_fill": 0.3},"Fe-78.5Ni": {"color": "salmon", "marker": "^", "alpha_fill": 0.3},"Fe-4Si": {"color": "gold", "marker": "s", "alpha_fill": 0.3},}# 繪制各材料的雷達圖for label, values in data.items():vals = values.tolist()vals += vals[:1] # 閉合數據點style = styles[label]ax.plot(angles, vals, color=style["color"], linewidth=2,marker=style["marker"], label=label)ax.fill(angles, vals, color=style["color"], alpha=style["alpha_fill"]) # 填充區域# 自定義網格樣式ax.grid(color='grey', linestyle='--', linewidth=0.5)# 添加圖例(位置可調整)plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1.1), fontsize=12)# 添加標題plt.title("材料屬性雷達圖", fontsize=16, y=1.08)plt.show()

💡 代碼核心模塊拆解:從數據到可視化的魔法

1. 數據準備:定義維度與數值
  • categories 列表:這里定義了雷達圖的每個坐標軸代表的屬性,比如 “屈服強度”“電阻率” 等。用戶替換點:直接修改列表中的字符串,即可適配你的研究領域(比如換成 “市場份額”“用戶滿意度” 等)。
  • data 字典:鍵是材料名稱,值是對應材料在各個維度上的數值。用戶替換點:刪除隨機生成數據,改為你的實際數據!比如:

data = {"鋁合金": [8.5, 9.0, 7.2, 6.8, 4.5, 3.2, 5.1],"鈦合金": [7.8, 8.2, 6.5, 7.0, 5.5, 4.0, 3.8],# 更多材料數據...}

注意:每個列表的長度必須與 categories 的長度一致哦~

2. 坐標系統構建:讓數據 “轉” 起來
  • angles變量是雷達圖的核心!通過np.linspace生成等角度間隔的坐標,最后用angles += angles[:1]閉合圓環,這樣線條才能形成完整的多邊形。
  • polar=True參數是開啟 “極坐標” 模式的關鍵,它讓 matplotlib 把直線坐標轉換為環形坐標,瞬間賦予數據 “立體感”~
3. 樣式定制:讓圖表顏值飆升
  • styles字典定義了每種材料的顏色、標記符號和填充透明度。比如"#00b386"是清新的藍綠色,"marker": "v"表示三角形標記。用戶可自定義點:修改顏色值(支持 RGB、十六進制或顏色名稱)、更換標記符號("o"圓、"s"正方形等),甚至調整填充透明度讓圖表更通透~
  • 網格線、圖例位置、標題字體等細節都可以通過代碼微調,比如bbox_to_anchor=(1.2, 1.1)讓圖例 “懸浮” 在圖表右側,避免遮擋數據。

🧰 個性化改造指南:讓雷達圖適配你的需求

🔍 場景一:我的數據范圍不是 0-10,怎么辦?

修改plt.ylim(0, 10)中的數值即可!比如數據范圍是 0-100,改為plt.ylim(0, 100),同時調整plt.yticks的刻度值,讓顯示更清晰。

🌈 場景二:想換一套更炫酷的配色?

Matplotlib 支持上百種顏色名稱,也可以用十六進制色碼。比如換成漸變色系:


styles = {"材料A": {"color": "#ff6b6b", "marker": "o"}, # 珊瑚紅"材料B": {"color": "#4ecdc4", "marker": "s"}, # 淺青色"材料C": {"color": "#ffe66d", "marker": "^"}, # 明黃色}

如果追求專業感,還可以使用科研論文常用的配色方案,比如藍、綠、橙三色搭配~

📊 場景三:維度太多,標簽擠在一起怎么辦?

當categories數量超過 8 個時,標簽可能會重疊。解決方案:

  1. 旋轉標簽:plt.xticks(angles[:-1], categories, fontsize=10, rotation=45)
  1. 減少維度數量,或用縮寫代替全稱(比如 “UTS” 代替 “Ultimate Tensile Strength”)
  1. 增大畫布尺寸:fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True))

🚀 擴展應用:雷達圖不止于材料科學

雷達圖的適用場景遠比你想象的更廣!只要是多維數據對比,它都能大顯身手:

🏷? 市場分析:競品多維指標對比

  • 維度示例:價格競爭力、品牌知名度、用戶口碑、功能豐富度、售后服務
  • 應用:一眼看出自家產品與競品的優勢短板,為市場策略提供可視化依據。

📈 個人能力評估:職業發展規劃

  • 維度示例:編程能力、溝通能力、項目管理、行業知識、創新思維
  • 應用:用雷達圖繪制 “能力圖譜”,直觀發現技能短板,制定學習計劃~

🌱 農業科研:作物多指標對比

  • 維度示例:抗旱性、產量、抗病性、生長周期、營養價值
  • 應用:幫助育種專家快速篩選優質品種,比表格數據更直觀!

📝 總結:從代碼到洞察,雷達圖的終極價值

通過這篇博客,我們不僅學會了用 Python 繪制精美的材料屬性雷達圖,更深入理解了多維數據可視化的核心邏輯。雷達圖的魅力在于:

  • 直觀性:閉合區域面積直接反映綜合性能,無需計算即可對比
  • 全面性:同時展示 7-8 個維度毫無壓力,打破傳統圖表的維度限制
  • 美觀性:通過顏色、填充、標記的組合,讓科研數據也能 “顏值在線”

現在,你只需替換categories和data中的內容,就能將這段代碼應用到自己的研究或工作中。快去試試吧~ 如果在使用中遇到問題,歡迎在評論區交流,一起解鎖更多雷達圖的隱藏技巧!

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

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

相關文章

Excel學習03

超級表與圖表 Excel中具有超級表的功能。所謂超級表(官方名稱為“表格”,快捷鍵CtrlT)是Excel中一個強大的數據管理工具,它將普通的數據區域轉換為具有只能功能的交互式表格。 這就是表格變為超級表的樣子。超級表默認具備凍結窗…

Netflix 網飛的架構演進過程、Java在網飛中的應用|圖解

寫在前面 上一篇文章中,我們講解了網飛當前的架構,但網飛的架構并不是一開始就是這樣的,而是不斷演進發展才是當前的樣子。 這篇文章我們就來講講網飛架構的演進過程。 第一階段:Zuul Gateway REST API 使用 Zuul 作為API網關…

使用ros2服務實現人臉檢測2-人臉檢測功能實現(適合0基礎小白)

文章目錄 一、用到的庫二、使用步驟1.引入庫2.獲取圖片真實路徑3.檢測人臉4.繪制人臉5.顯示結果6.更改setup.py7.完整代碼 三、結果展示 一、用到的庫 face_recognition:實現在圖片中檢測人臉。 cv2:顯示圖片,并且可以在圖像中展示檢測結果。…

中國農村統計年鑒-Excel版(1985-2024年)

《中國農村統計年鑒》系統收錄了全國和各省農村社會經濟統計數據,以及近年全國農村主要統計數據,是一部全面反映我國農村社會經濟情況的資料性年刊。年鑒內容覆蓋農村人口結構、農業產值、主要農產品產量、市場物價、進出口貿易以及收入消費水平等社會經…

golang pprof性能調試工具

簡介 pprof是性能調試工具,可以生成類似火焰圖、堆棧圖,內存分析圖等。 整個分析的過程分為兩步:1. 導出數據,2. 分析數據。

PPIO × 302.AI:三分鐘搭建可共享的聊天機器人

最近,各主流模型廠商頻頻發布新模型,有一如既往強大的DeepSeek-R1-0528,擅長長輸入推理的MiniMax-M1-80k…… 好用的AI大模型這么多,如何才能集成在一個應用自由使用呢?302.AI作為企業級AI應用平臺支持各主流模型調用&…

怎么樣在自己的網站/獨立站中添加視頻?

文章目錄 **前言** 一、視頻在網站/獨立站的好處二、視頻嵌入網站的原理三、如何簡易地把視頻嵌入到獨立站中? 前言 在信息傳播形式日益多元化的當下,靜態文字與圖片早已無法滿足用戶對沉浸式瀏覽體驗的需求。視頻以其動態畫面、聲音及文字相結合的特性…

【圖像處理基石】什么是攝影的數碼味?

“數碼味”是一個攝影術語,通常指照片看起來不自然,有過度處理的痕跡,比如色彩過于鮮艷、對比度偏高、高光過曝、陰影死黑,或者有明顯的銳化痕跡和噪點。這種現象在手機攝影中尤為常見,因為手機相機的自動算法往往會為…

報表控件stimulsoft教程:在報表、儀表板和 PDF 表單自動生成縮略圖

了解縮略圖的工作原理在使用Stimulsoft Demo、Stimulsoft Server和Stimulsoft Cloud時非常有用。例如,您可以在此處查看縮略圖的實際效果 - 當側邊欄折疊時,將顯示縮略圖而不是資源列表。在本文中,我們將探討 Stimulsoft 產品中報表、儀表板和…

變分自編碼器(VAE)

1. 從自編碼器(AE)到變分自編碼器(VAE) 自編碼器(AutoEncoder, AE) 基本結構: 自編碼器是一種無監督學習模型,通常由兩個部分組成: 編碼器(Encoder)&…

ChatboxAI 搭載 GPT 與 DeepSeek,引領科研與知識庫管理變革

文章摘要:本文深入探討 ChatboxAI 在科研領域的應用優勢。ChatboxAI 集成多模型,支持全平臺,能高效管理科研知識,助力文獻檢索、實驗設計與論文撰寫,提升科研效率與質量,同時保障數據安全。其知識庫功能可整…

【無刷電機FOC進階基礎準備】【04 clark變換、park變換、等幅值變換】

目錄 clark變換park變換等幅值變換 其實我不太記得住什么是clark變換、park變換,我每次要用到這個名詞的時候都會上網查一下,因為這就是兩個名詞而已,但是我能記住的是他們背后的含義。 經過【從零開始實現stm32無刷電機FOC】系列后應該對cla…

Sentinel的流控策略

在 Sentinel 中,流控策略(Flow Control Strategy)用于定義如何處理請求的流量,并決定在流量達到某個閾值時采取的行動。流控策略是實現系統穩定性和高可用性的核心機制,尤其在高并發環境中,確保服務不會因過…

Ubuntu Extension Manager 插件卸載

Ubuntu 上使用Extension Manager 安裝插件,但目前無法在Extension Manager 中卸載。 卸載方式可以通過 gnome-extensions 命令進行卸載: Usage:gnome-extensions COMMAND [ARGS…]Commands:help Print helpversion Print versionenable Enabl…

深度學習中Embedding原理講解

我們用最直白的方式來理解深度學習中 Embedding(嵌入) 的概念。 核心思想一句話: Embedding 就是把一些復雜、離散的東西(比如文字、類別、ID)轉換成計算機更容易理解和計算的“數字密碼”,這些“數字密碼…

(3)Java+Playwright自動化測試-啟動瀏覽器

1.簡介 前邊兩章文章已經將環境搭建好了,今天就在Java項目搭建環境中簡單地實踐一下: 啟動兩大瀏覽器。 接下來我們在Windows系統中啟動瀏覽器即可,其他平臺系統的瀏覽器類似的啟動方法,照貓畫虎就可以了。 但是在實踐過程中&am…

使用OpenWebUI與DeepSeek交互

Open WebUI 是針對 LLM 用戶友好的 WebUI,支持的 LLM 運行程序包括阿里百煉、 Ollama、OpenAI 兼容的 API。這里主要講在Docker環境下安裝與本地Ollame和百煉API Key配置 一、安裝Docker 1. CentOS # 設置為阿里云的源 sudo yum install -y yum-utils sudo yum-config-mana…

Github 2025-06-25 C開源項目日報 Top9

根據Github Trendings的統計,今日(2025-06-25統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量C項目9C++項目1raylib: 用于視頻游戲編程的簡單易用圖形庫 創建周期:3821 天開發語言:C協議類型:zlib LicenseStar數量:18556 個Fork數量:1…

【數據標注師】2D標注

目錄 一、 **2D標注知識體系框架**二、 **五階能力培養體系**? **階段1:基礎規則內化(1-2周)**? **階段2:復雜場景處理技能**? **階段3:專業工具 mastery**? **階段4:領域深度專精? **階段5&#xff1…

深入淺出Node.js后端開發

讓我們來理解Node.js的核心——事件循環和異步編程模型。在Node.js中,所有的I/O操作都是非阻塞的,這意味著當一個請求開始等待I/O操作完成時(如讀取文件或數據庫操作),Node.js不會阻塞后續操作,而是繼續執行…