Matplotlib 繪圖庫使用技巧介紹

目錄

前言

Matplotlib 簡介

快速入門

圖形結構解剖

常用繪圖函數

子圖與布局

單行多列子圖:

網格布局:

自定義位置:

樣式與標注

中文字體與科學計數

圖例、網格、坐標軸

動態圖與動畫

三維繪圖

常見問題與技巧


前言


Matplotlib 是 Python最基礎也是最強大的繪圖庫之一,它是科學計算、數據可視化和工程模擬中最常見的可視化工具。本教程將系統性地介紹 Matplotlib 的用法,從基礎的繪圖函數,到子圖、樣式、動畫、3D 繪圖等高級用法,適合所有希望精通 Python 繪圖的人。

Matplotlib 簡介

Matplotlib 是一個 Python 2D 繪圖庫,可以生成出版質量級別的圖形。

  • ?它可以與 NumPy、Pandas、SciPy 配合使用
  • ?默認畫布是靜態圖(與 MATLAB 類似)
  • ?支持動態圖(matplotlib.animation)

??

安裝方式:

pip install matplotlib

導入:

import matplotlib.pyplot as plt

快速入門

繪制正選函數,如下所示。

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)plt.plot(x, y)
plt.title('正弦函數')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()

圖形結構解剖

Matplotlib 繪圖的底層邏輯分為三個核心對象:

你可以使用面向對象方式明確控制:

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('對象式繪圖')

常用繪圖函數

  • plot()?折線圖(默認)
  • scatter()?散點圖
  • bar()?柱狀圖
  • hist()?直方圖??
  • boxplot()?箱型圖?
  • fill_between()?區域圖
  • imshow()?圖像顯示(灰度圖)
  • contour()?等高線

??

子圖與布局

單行多列子圖:

fig, axs = plt.subplots(1, 3, figsize=(12, 4))

網格布局:

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[1, 1].bar([1,2,3], [3,4,5])

自定義位置:

from matplotlib.gridspec import GridSpec

樣式與標注

?線型:'-', '--', ':'
??
?顏色:'r', 'g', '#3366cc'
??
?標記:'o', '^', 's'
??

plt.plot(x, y, linestyle='--', color='red', marker='o')

中文字體與科學計數

中文顯示:

plt.rcParams['font.family'] = 'SimHei' ?# 或 'Microsoft YaHei'

科學計數法:

ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))

圖例、網格、坐標軸

plt.legend(loc='best')
plt.grid(True)
plt.xlim(0, 10)
plt.ylim(-1, 1)

動態圖與動畫

使用 `FuncAnimation`:

from matplotlib.animation import FuncAnimation

適用于波動、物理模擬、實時數據更新等場景。

三維繪圖

使用 `mpl_toolkits.mplot3d`:

from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)

常見問題與技巧

  • 圖像太小?試試 figsize=(12,6)

??

  • 中文亂碼?加上 plt.rcParams['font.family']

??

  • 動畫失效?確認調用 plt.show()?或保存 ani.save()

??

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

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

相關文章

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

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

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

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

【Elasticsearch】自定義相似性算法

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

【對比】DeepAR 和 N-Beats

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

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

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

卷積類型總結

1. 標準卷積 (Convolution) 原理&#xff1a; 一個包含 K 個濾波器的卷積層&#xff08;每個濾波器大小為 FxF x C_in&#xff09;在輸入特征圖上滑動。在每個位置&#xff0c;濾波器與輸入圖像的局部區域進行逐元素相乘再求和&#xff08;點積運算&#xff09;&#xff0c;得到…

HP iLO使用實例:Integrated Lights-Out

文章目錄 參考名詞解釋iLODMTF SMASH CLP命令HP提供的命令VSPBIOS啟動順序BIOS指令啟動時報的電源錯誤如果ilo登陸不上去參考 ilo命令 https://support.hpe.com/hpesc/public/docDisplay?docId=c03334058 名詞解釋 iLO 從字面理解:Integrated Lights-Out,就是整合燈出;…

【前端隱蔽 Bug 深度剖析:SVG 組件復用中的 ID 沖突陷阱】

前端隱蔽 Bug 深度剖析&#xff1a;SVG 組件復用中的 ID 沖突陷阱 創建時間: 2025/6/20 類型: &#x1f50d; Bug 深度分析 難度: ????? 高級 關鍵詞: SVG、ID 沖突、Vue 組件、隱蔽 Bug、技術分析 &#x1f4d6; 引言 在前端開發的世界里&#xff0c;有一類 Bug 特別令…

IDEA 中 Tomcat 部署 Java Web 項目(Maven 多模塊 非 Maven 通用版)

引言 Java Web 開發中&#xff0c;Tomcat 是最常用的 Servlet 容器&#xff0c;而項目類型通常分為 Maven 管理&#xff08;依賴自動處理、多模塊聚合&#xff09; 和 非 Maven 純手工管理&#xff08;手動引入 jar 包、配置項目結構&#xff09;。本文覆蓋 兩種項目類型 的 T…

當建筑學會“行走”:MiC建筑如何重塑醫療空間

當塔吊林立的工地被智能化工廠取代&#xff0c;當混凝土現澆的轟鳴被精密模塊的無聲拼接覆蓋&#xff0c;建筑行業正經歷著自鋼筋混凝土革命以來最深刻的范式轉移。模塊化集成建筑&#xff08;MiC&#xff09;技術&#xff0c;這場以“制造組裝”為核心的新型工業化浪潮&#x…

計算機網絡八股第二期

計算機網絡八股第二期 1.講一講從輸入網址到網頁顯示之間發生了什么&#xff08;從網絡的角度&#xff09; 想想一下你從網店買一本書&#xff0c;從輸入網址到網頁顯示其實和你從網店買一本書差不多&#xff0c;網店發給你的是實體而網絡傳輸的是文字&#xff0c;圖片等等資…

FPGA基礎 -- Verilog 的值變轉儲文件(VCD:Value Change Dump)

Verilog 的“值變轉儲文件&#xff08;VCD&#xff1a;Value Change Dump&#xff09;”&#xff0c;這是一項在仿真調試中至關重要的技術&#xff0c;可以幫助你“看見”RTL中每個信號隨時間的變化過程。 一、什么是 Verilog 的值變轉儲文件&#xff08;VCD&#xff09; VCD …

流水燈芯片74HC138 → 74HC164 → 74HC595核心功能、引腳作用及芯片定位

一、74HC138&#xff1a;精準的“8選1開關” 核心作用 用3根控制線&#xff08;A0-A2&#xff09;實現8路嚴格單選&#xff0c;同一時刻僅1路輸出低電平&#xff08;其他7路高電平&#xff09;。 &#x1f4cc; 本質&#xff1a;二進制地址譯碼器&#xff0c;不是數據寄存器。…

鴻蒙Next倉頡語言開發實戰教程:懶加載

今天要分享的是倉頡開發語言中的懶加載。 先和初學者朋友們解釋一下什么是懶加載。懶加載在代碼中叫做LazyForEach&#xff0c;看到名字你一定能猜到它和ForEach的功能類似。只不過和ForEach的一次性加載所有數據不同&#xff0c;懶加載會根據屏幕可使區域按需加載數據&#x…

Linux 內核同步管理全解:原理 + 實戰 + 考點

&#x1f525; 推薦&#xff1a;《Yocto項目實戰教程&#xff1a;高效定制嵌入式Linux系統》 京東正版促銷&#xff0c;歡迎支持原創&#xff01; 鏈接&#xff1a;https://item.jd.com/15020438.html 一、為什么需要同步機制&#xff1f; Linux 是一個支持 多核并發 搶占式調…

效果成本雙突破!快手提出端到端生成式推薦系統OneRec!

近日&#xff0c;快手推薦模型團隊提出了一個端到端生成式推薦系統OneRec&#xff0c;該系統采用Encoder-Decoder架構&#xff0c;引入了基于獎勵機制的偏好對齊方法&#xff0c;借助強化學習增強模型效果&#xff0c;可在獎勵模型引導下直接生成契合用戶偏好的視頻內容。通過極…

flex布局 項目屬性

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>flex布局 項目屬性</title> <link href"css/k.css" rel"stylesheet" /> </head> <bod…

SpringBoot擴展——應用Web Service!

應用Web Service Web Service是一個SOA&#xff08;面向服務的編程&#xff09;架構&#xff0c;這種架構不依賴于語言&#xff0c;不依賴于平臺&#xff0c;可以在不同的語言之間相互調用&#xff0c;通過Internet實現基于HTTP的網絡應用間的交互調用。Web Service是一個可以…

EasyExcel學習筆記

EasyExcel學習 一、EasyExcel簡介 一、EasyExcel是什么 EasyExcel是一個基于Java的簡單、省內存的讀寫Excel的阿里開源項目。在盡可能節約內存的情況下支持讀寫百M的Excel。 官網&#xff1a;https://easyexcel.opensource.alibaba.com/ 學習Easyexcel前需要了解導入和導出…

day4課程

1整體認識和路由配置 2二級分類面包屑導航實現 3基礎商品列表渲染 4列表篩選功能實現 5列表無限加載功能實現 6定制路由滾動行為 7詳情頁整體認識和路由配置 8詳情頁基礎數據渲染 9詳情頁基礎組件封裝和數據渲染 10適配不同title和數據列表 11小圖切換大圖 12滑塊跟隨鼠標移動 …