[Python教學] Matplotlib:資料視覺化的基石

更新於 2024/12/24閱讀時間約 8 分鐘

Matplotlib 是 Python 中最流行且功能強大的資料視覺化工具之一。它能夠生成各種靜態、動態及互動式的圖表,是資料分析與科學計算的重要組成部分。在本教學中,我們將詳細介紹 Matplotlib 的核心功能,並以範例逐步展示如何繪製基本與進階圖表。


1. 安裝與載入 Matplotlib

首先,確保安裝了 Matplotlib。如果尚未安裝,可以使用以下指令:

pip install matplotlib

載入 Matplotlib 的核心模組:

import matplotlib.pyplot as plt

2. 繪製第一個圖表

以下是一個簡單的線圖示例:

import matplotlib.pyplot as plt

# 資料
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 繪製圖表
plt.plot(x, y)
plt.title('線圖示例') # 標題
plt.xlabel('X 軸') # X 軸標籤
plt.ylabel('Y 軸') # Y 軸標籤
plt.show() # 顯示圖表

輸出為一個簡單的線性圖。


3. Matplotlib 的基礎功能

3.1 設定標題與標籤

可以使用 titlexlabelylabel 方法為圖表添加標題及軸標籤:

plt.title('這是標題')
plt.xlabel('X 軸標籤')
plt.ylabel('Y 軸標籤')

3.2 設定線條樣式

可以通過參數設置線條的樣式、顏色與粗細:

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

常用參數:

  • color: 設置線條顏色(如 'blue', 'red' 或 HEX 值)。
  • linestyle: 設置線條樣式(如 '-', '--', ':')。
  • linewidth: 設置線條粗細。

4. 多條線的繪製

可以在同一個圖表中繪製多條線:

x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [2, 4, 6, 8, 10]

plt.plot(x, y1, label='y = x') # 第一條線
plt.plot(x, y2, label='y = 2x') # 第二條線
plt.legend() # 顯示圖例
plt.show()

輸出將顯示兩條線及圖例。


5. 繪製常用圖表

5.1 折線圖 (Line Plot)

plt.plot(x, y)
plt.title('折線圖')
plt.show()

5.2 柱狀圖 (Bar Plot)

categories = ['A', 'B', 'C', 'D']
values = [3, 7, 8, 5]

plt.bar(categories, values, color='blue')
plt.title('柱狀圖')
plt.show()

5.3 散點圖 (Scatter Plot)

x = [5, 7, 8, 7, 2, 17]
y = [99, 86, 87, 88, 100, 86]

plt.scatter(x, y, color='red')
plt.title('散點圖')
plt.show()

5.4 圓餅圖 (Pie Chart)

sizes = [30, 20, 45, 5]
labels = ['A', 'B', 'C', 'D']
colors = ['gold', 'lightblue', 'lightgreen', 'red']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('圓餅圖')
plt.show()

6. 子圖 (Subplots)

Matplotlib 支援在同一畫布中繪製多個子圖:

# 創建子圖畫布 (2, 2)
fig, axs = plt.subplots(2, 2)

# 繪製不同的圖表
axs[0, 0].plot(x, y) # 第一張圖
axs[0, 1].bar(categories, values) # 第二張圖
axs[1, 0].scatter(x, y) # 第三張圖
axs[1, 1].pie(sizes, labels=labels, autopct='%1.1f%%') # 第四張圖

plt.tight_layout() # 自動調整間距
plt.show()

7. 使用 Matplotlib 的進階功能

7.1 設置網格 (Grid)

plt.plot(x, y)
plt.grid(True) # 顯示網格
plt.show()

7.2 設置刻度與範圍

plt.plot(x, y)
plt.xlim(0, 6) # 設置 X 軸範圍
plt.ylim(0, 12) # 設置 Y 軸範圍
plt.xticks([1, 2, 3, 4, 5]) # 自定義 X 軸刻度
plt.yticks([0, 2, 4, 6, 8, 10]) # 自定義 Y 軸刻度
plt.show()

8. 將圖表儲存為圖片

Matplotlib 支援將圖表保存為多種格式:

plt.plot(x, y)
plt.savefig('line_chart.png', dpi=300, format='png') # 儲存為 PNG
plt.show()

9. 與 Pandas 的結合

Matplotlib 能直接繪製 Pandas 的資料:

import pandas as pd

# 建立 DataFrame
data = {
'X': [1, 2, 3, 4, 5],
'Y': [2, 4, 6, 8, 10]
}
df = pd.DataFrame(data)

# 使用 DataFrame 繪圖
df.plot(x='X', y='Y', kind='line', title='Pandas 與 Matplotlib', legend=False)
plt.show()

10. 小結

Matplotlib 是 Python 資料視覺化的基礎工具,其功能全面,適合繪製靜態圖表。在資料分析與展示中,掌握 Matplotlib 的使用將極大提升你的表達能力。

以下是學習 Matplotlib 的建議:

  1. 熟悉核心功能,如繪製基本圖表及設置標題、標籤等。
  2. 掌握子圖繪製、多條線繪製與進階功能。
  3. 結合 Pandas 處理資料,提升視覺化效率。

通過多加練習與應用,將能夠輕鬆利用 Matplotlib 將數據可視化為清晰、直觀的圖表!

歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Pandas 是 Python 的一個強大數據操作與分析庫。它提供高效且靈活的資料結構,如 Series 和 DataFrame,適合用於資料清理、操作及分析。在本教學中,我們將深入探討 Pandas 的核心功能,並以範例展示如何進行資料處理。
在這篇文章中,我們將深入探討 Python 中的非同步程式設計,特別是使用 asyncio 模組來實現事件循環和協程。這將幫助你理解如何在 I/O 密集型任務中提高效率,並充分利用 Python 的非同步特性。
在這篇文章中,我們將深入探討 Python 中的平行程式設計,特別是使用 threading 和 multiprocessing 模組來實現多執行緒和多進程的應用。這些技術可以幫助我們充分利用現代 CPU 的多核心架構,提高程式的執行效率。
在 Python 中,生成器與裝飾器是兩個非常強大的特性,分別讓我們能更高效地處理數據流和更靈活地擴展函數的功能。
這篇文章是在解說上一篇文章:[Python教學] 進階:函數式程式設計 的課後練習的題目的解答,如果還沒看過上一篇文章的話建議可以先行前往閱讀!
Pandas 是 Python 的一個強大數據操作與分析庫。它提供高效且靈活的資料結構,如 Series 和 DataFrame,適合用於資料清理、操作及分析。在本教學中,我們將深入探討 Pandas 的核心功能,並以範例展示如何進行資料處理。
在這篇文章中,我們將深入探討 Python 中的非同步程式設計,特別是使用 asyncio 模組來實現事件循環和協程。這將幫助你理解如何在 I/O 密集型任務中提高效率,並充分利用 Python 的非同步特性。
在這篇文章中,我們將深入探討 Python 中的平行程式設計,特別是使用 threading 和 multiprocessing 模組來實現多執行緒和多進程的應用。這些技術可以幫助我們充分利用現代 CPU 的多核心架構,提高程式的執行效率。
在 Python 中,生成器與裝飾器是兩個非常強大的特性,分別讓我們能更高效地處理數據流和更靈活地擴展函數的功能。
這篇文章是在解說上一篇文章:[Python教學] 進階:函數式程式設計 的課後練習的題目的解答,如果還沒看過上一篇文章的話建議可以先行前往閱讀!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。