Matplotlib數據可視化實戰:Matplotlib圖表注釋與美化入門

圖表注釋與標簽:提升數據可視化效果

學習目標

通過本課程的學習,學員將掌握如何使用Matplotlib在圖表中添加文本注釋、圖例、標題和軸標簽,從而提高圖表的可讀性和信息傳達能力。本課程將通過實際案例,幫助學員理解每個元素的作用及其在圖表中的應用。

相關知識點

  • Matplotlib數據可視化

學習內容

1 Matplotlib數據可視化

1.1 添加文本注釋

在數據可視化中,文本注釋是增強圖表信息傳達能力的重要工具。通過在圖表中添加注釋,可以突出顯示特定的數據點或趨勢,幫助觀眾更好地理解圖表所傳達的信息。Matplotlib 提供了多種方法來添加文本注釋,包括 text()annotate() 函數。

1.1.1 使用 text() 函數添加文本

text() 函數允許學員在圖表的任意位置添加文本。該函數的基本語法如下:

%pip install matplotlib
plt.text(x, y, s, fontdict=None, withdash=False, **kwargs)
  • x, y:指定文本的坐標位置。
  • s:要顯示的文本字符串。
  • fontdict:一個字典,用于設置文本的字體屬性,如顏色、大小等。
  • withdash:是否使用虛線連接文本和數據點。
  • **kwargs:其他可選參數,如 colorsize 等。
示例代碼
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x)# 繪制圖表
plt.plot(x, y, label='sin(x)')# 添加文本注釋
plt.text(5, 0.5, 'Peak of sin(x)', fontsize=12, color='red')# 顯示圖表
plt.show()

在這里插入圖片描述

1.1.2 使用 annotate() 函數添加注釋

annotate() 函數提供了更強大的注釋功能,可以添加帶有箭頭的注釋,使注釋更加直觀。該函數的基本語法如下:

plt.annotate(s, xy, xytext=None, arrowprops=None, **kwargs)
  • s:要顯示的文本字符串。
  • xy:注釋指向的數據點坐標。
  • xytext:注釋文本的坐標位置。
  • arrowprops:一個字典,用于設置箭頭的屬性,如顏色、寬度等。
  • **kwargs:其他可選參數,如 colorsize 等。
示例代碼
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x)# 繪制圖表
plt.plot(x, y, label='sin(x)')# 添加帶有箭頭的注釋
plt.annotate('Peak of sin(x)', xy=(5, 1), xytext=(6, 1.5),arrowprops=dict(facecolor='black', shrink=0.05))# 顯示圖表
plt.show()

在這里插入圖片描述

1.2 創建圖例

圖例是圖表中用于解釋不同數據系列的標識。通過圖例,觀眾可以輕松地識別圖表中的不同數據線或數據點。Matplotlib 提供了 legend() 函數來創建圖例。

1.2.1 使用 legend() 函數創建圖例

legend() 函數的基本語法如下:

plt.legend(labels=None, loc='best', ncol=1, mode=None, borderaxespad=None, **kwargs)
  • labels:圖例標簽的列表。
  • loc:圖例的位置,可以是字符串(如 ‘best’、‘upper right’ 等)或數字(0-10)。
  • ncol:圖例的列數。
  • mode:圖例的布局模式。
  • borderaxespad:圖例與軸之間的邊距。
  • **kwargs:其他可選參數,如 titleframeon 等。
示例代碼
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 繪制圖表
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')# 創建圖例
plt.legend(loc='upper right', title='Functions')# 顯示圖表
plt.show()

在這里插入圖片描述

1.3 設置標題和軸標簽

標題和軸標簽是圖表中不可或缺的元素,它們幫助觀眾理解圖表的主題和數據的含義。Matplotlib 提供了 title()xlabel()ylabel() 函數來設置這些元素。

1.3.1 使用 title() 函數設置標題

title() 函數的基本語法如下:

plt.title(label, fontdict=None, loc='center', pad=None, **kwargs)
  • label:標題文本。
  • fontdict:一個字典,用于設置標題的字體屬性。
  • loc:標題的位置,可以是 ‘center’、‘left’ 或 ‘right’。
  • pad:標題與圖表頂部的距離。
  • **kwargs:其他可選參數,如 colorsize 等。
示例代碼
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x)# 繪制圖表
plt.plot(x, y, label='sin(x)')# 設置標題
plt.title('Sine Wave', fontsize=16, color='blue')# 顯示圖表
plt.show()

在這里插入圖片描述

1.3.2 使用 xlabel()ylabel() 函數設置軸標簽

xlabel()ylabel() 函數的基本語法如下:

plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)
plt.ylabel(ylabel, fontdict=None, labelpad=None, **kwargs)
  • xlabelylabel:軸標簽文本。
  • fontdict:一個字典,用于設置軸標簽的字體屬性。
  • labelpad:軸標簽與軸的距離。
  • **kwargs:其他可選參數,如 colorsize 等。
示例代碼
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x)# 繪制圖表
plt.plot(x, y, label='sin(x)')# 設置軸標簽
plt.xlabel('Time (s)', fontsize=12, color='green')
plt.ylabel('Amplitude', fontsize=12, color='green')# 顯示圖表
plt.show()

在這里插入圖片描述

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

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

相關文章

GitLab 安全漏洞 CVE-2025-7739 解決方案

本分分享極狐GitLab 補丁版本 18.2.2, 18.1.4, 18.0.6 的詳細內容。這幾個版本包含重要的缺陷和安全修復代碼,我們強烈建議所有私有化部署用戶應該立即升級到上述的某一個版本。對于極狐GitLab SaaS,技術團隊已經進行了升級,無需用戶采取任何…

C端高并發項目都有哪些

C端(用戶端)高并發項目通常涉及大規模用戶直接訪問的服務,其核心挑戰是如何在海量用戶同時請求下,保證系統的穩定性、高性能、高可用和一致性。以下是一些典型的C端高并發項目類型和具體案例:?核心類型與典型案例&…

OSCP - Proving Grounds - Shenzi

主要知識點 路徑爆破小技巧 windows AlwaysInstallElevated 提權 具體步驟 依舊是nmap開始,其中80/443/139/445端口值得關注一下 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-01 15:06 UTC Nmap scan report for 192.168.53.55 Host is up (0.0008…

結合BI多維度異常分析(日期-> 商家/渠道->日期(商家/渠道))

技術手段: BI工具(finereport )、python、sql 數據更新: 每日零點更新數據。(獨立開發) 商業智能分析平臺 | Python/FineReport/SQLAlchemy 項目描述 業務價值 :解決原有系統無法快速定位傭金異…

計算機畢設Spark項目實戰:基于大數據技術的就業數據分析系統Django+Vue開發指南

🎓 作者:計算機畢設小月哥 | 軟件開發專家 🖥? 簡介:8年計算機軟件程序開發經驗。精通Java、Python、微信小程序、安卓、大數據、PHP、.NET|C#、Golang等技術棧。 🛠? 專業服務 🛠? 需求定制化開發源碼提…

如何讓FastAPI任務系統在失敗時自動告警并自我修復?

url: /posts/2f104637ecc916e906c002fa79ab8c80/ title: 如何讓FastAPI任務系統在失敗時自動告警并自我修復? date: 2025-08-20T08:18:42+08:00 lastmod: 2025-08-20T08:18:42+08:00 author: cmdragon summary: FastAPI 和 Celery 結合提供了強大的異步任務處理能力,但在分布…

Gitee倉庫 日常操作詳細步驟

新建倉庫 → 上傳代碼 步驟1、打開Gitee倉庫網站:開源軟件 - Gitee.com 步驟2、點擊右上角加號 點擊新建倉庫。 步驟3、設置倉庫名 ,選擇是否開源 ,點擊創建。 步驟4、記住遠程倉庫URL 步驟5、本地新建文件夾,然后進行上傳代碼…

Python采集易貝(eBay)商品詳情API接口,json數據返回

Python采集易貝(eBay)商品詳情API接口要采集eBay商品詳情,你可以使用eBay官方提供的API。以下是使用Python通過eBay Finding API獲取商品詳情的完整示例:準備工作注冊賬號并獲取API密鑰:選擇適合的API(如Finding API、Shopping AP…

如何將任意文件一鍵轉為PDF?

無論你用什么軟件打開文件(Word、Excel、網頁、CAD圖紙、圖片等),只要能打印,就可以通過虛擬打印機將其轉為PDF,確保對方收到的文件看起來和你看到的一模一樣。它是小巧實用的PDF虛擬打印工具,采用安裝包形…

遷移學習+多模態融合破解跨域難題,解鎖視覺感知新范式

在近期的頂會頂刊中,遷移學習與多模態融合的熱度居高不下,相關成果頻出,部分模型在特定任務里性能提升極為顯著。登上頂刊 TPAMI 2025 的某篇研究,借助語言引導的關系遷移,大幅提升了少樣本類增量學習中模型的泛化能力…

C語言---分隔符、常量、注釋、標識符、關鍵字、空格

文章目錄分隔符注釋注意標識符標識符的定義標識符的命名要求合法與非法標識符示例關鍵字關鍵字定義關鍵字一覽(按功能分類)空格一、空格的作用:分隔令牌 (Tokens)空格的使用場景必須用空格分隔的情況不能有空格的情況分隔符 分隔符名稱主要用途;分號語句結束符,逗號…

創建Vue項目的不同方式及項目規范化配置

1 項目的創建與運行 1.1 基于webpack構建工具——vue-cli腳手架 1. 安裝腳手架 :npm i -g vue/cli # 安裝一次即可,之前安裝過則無需重復安裝 2. 切換到項目所在目錄 :cd 項目所在目錄 3. 創建項目 :vue create 項目名 4. 自定…

K距離間隔重排字符串 (LeetCode 358) — Swift解法 + 可運行Demo

文章目錄摘要描述解決方法分析問題和解決代碼代碼要點詳解示例測試和結果時間復雜度空間復雜度總結摘要 這道題的核心是:把字符串里的字符重新排一下順序,讓相同字符之間至少隔開 k 個位置。如果做不到,就返回空串。看上去像“排座位”&…

React native Navigation 詳解

Tab Navigator(標簽導航器) 概念 Tab Navigator 是 React Navigation 中用于創建底部或頂部標簽欄導航的組件。它允許用戶在不同的屏幕之間快速切換,每個標簽對應一個獨立的屏幕。 基本用法 import {createBottomTabNavigator } from @react-navigation/bottom-tabs; im…

[GraphRAG]完全自動化處理任何文檔為向量知識圖譜:AbutionGraph如何讓知識自動“活”起來?

在當今信息爆炸的時代,企業和研究人員面對大量非結構化文檔時,如何高效地提取、存儲和查詢其中的知識,已成為一個核心挑戰。傳統的關鍵詞檢索早已無法滿足深層次語義關聯和智能問答的需求。 每天面對成百上千份PDF論文、Excel報告、行業白皮…

模擬tomcat接收GET、POST請求

訪問: http://localhost:10086/mytomcatMyTomcat/ └── src/└── com/└── zhang/├── MyServer.java├── MyRequest.java├── MyResponse.java├── MyMapping.java├── MyServlet.java└── MyHttpServlet.java核心類功能說明 MyServer.java 服務…

氯化釔:科技與高性能材料的核心元素

氯化釔是釔元素的氯化物,廣泛應用于高性能材料、催化劑、光電技術等領域。作為稀土元素之一,釔因其獨特的物理和化學特性,在現代工業中具有重要地位,而氯化釔則是其中的關鍵化合物之一。氯化釔的優勢與特點1. 化學穩定性強氯化釔具…

【數據結構初階】--排序(五):計數排序,排序算法復雜度對比和穩定性分析

😘個人主頁:Cx330? 👀個人簡介:一個正在努力奮斗逆天改命的二本覺悟生 📖個人專欄:《C語言》《LeetCode刷題集》《數據結構-初階》 前言:今天這篇博客就給大家將一個計數排序,然乎就…

Incredibuild 新增 Unity 支持:擊破構建時間過長的痛點

任何開發過復雜 Unity 項目的團隊都會告訴你:構建速度已成為生產流程中的核心痛點。Unity 靈活且強大,但隨著項目規模擴大(尤其是包含 3D 資源、復雜著色器和龐大內容管線的項目),構建過程會逐漸變成一項隱性成本。 多…

大數據接口 - 收入評估(社保評級)API

請求端點 {"post": "https://api.tianyuanapi.com/api/v1/JRZQ09J8?t13位時間戳" }請求頭字段名類型必填描述Access-Idstring是賬號的 Access-Id對于業務請求參數 通過加密后得到 Base64 字符串,將其放入到請求體中,字段名為 data&…