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

更新於 發佈於 閱讀時間約 9 分鐘

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


如果還沒有準備好Python的環境的話,我們推薦超好用的Python集成開發環境-PyCharm!安裝教學文章連結點此:[Python教學] 開發環境安裝與設定教學-Pycharm


1. 安裝與載入 Matplotlib

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

pip install matplotlib

載入 Matplotlib 的核心模組:

import matplotlib.pyplot as plt

2. 繪製第一個圖表

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

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

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

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

raw-image



3. Matplotlib 的基礎功能

3.1 設定標題與標籤

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

plt.title('Title')  # 標題
plt.xlabel('X-axis') # X 軸標籤
plt.ylabel('Y-axis') # Y 軸標籤

3.2 設定線條樣式

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

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

常用參數:

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



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()

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

raw-image



5. 繪製常用圖表

5.1 折線圖 (Line Plot)

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

plt.plot(x, y)
plt.title('Line Plot')
plt.show()
raw-image


5.2 柱狀圖 (Bar Plot)

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

plt.bar(categories, values, color='blue')
plt.title('Bar Plot')
plt.show()
raw-image


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('Scatter Plot')
plt.show()
raw-image


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('Pie Chart')
plt.show()
raw-image



6. 子圖 (Subplots)

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

import matplotlib.pyplot as plt

# 資料​
x1 = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10]

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

x2 = [5, 7, 8, 7, 2, 17]
y2 = [99, 86, 87, 88, 100, 86]

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

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

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

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



7. 使用 Matplotlib 的進階功能

7.1 設置網格 (Grid)

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

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()
raw-image



8. 將圖表儲存為圖片

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

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



9. 與 Pandas 的結合

Matplotlib 能直接繪製 Pandas 的資料:

import matplotlib.pyplot as plt
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()
raw-image



10. 小結

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

以下是學習 Matplotlib 的建議:

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

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

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
12會員
163內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
Hi, 大家好。我是茶桁。 在上一节课中,我们结束了Python正式的所有内容,但是咱们的Python课程还未结束。从这节课开始,我们要来学习一下Python的第三方库。 Python的生态非常完善也非常活跃,我们不太可能讲目前所有的第三方库全部都介绍一遍,只介绍几个有影响力并且和处理数据相关的
Thumbnail
Hi, 大家好。我是茶桁。 在上一节课中,我们结束了Python正式的所有内容,但是咱们的Python课程还未结束。从这节课开始,我们要来学习一下Python的第三方库。 Python的生态非常完善也非常活跃,我们不太可能讲目前所有的第三方库全部都介绍一遍,只介绍几个有影响力并且和处理数据相关的
Thumbnail
我們前篇有介紹到如何讓資料視覺化「📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!」,過程中雖然我們的報表呈現皆使用英文字眼,但假若欲繪製中文進行呈現時就會發生以下狀況: import matplotlib.pyplot as plt data = [l
Thumbnail
我們前篇有介紹到如何讓資料視覺化「📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!」,過程中雖然我們的報表呈現皆使用英文字眼,但假若欲繪製中文進行呈現時就會發生以下狀況: import matplotlib.pyplot as plt data = [l
Thumbnail
matplotlib Matplotlib 建新圖,基本步驟 Step 1 :Prepare Data Step 2 :Create Plot Step 3 :Plot Step 4 :Customize Plot Step 5 :Save Plot Step 6 :Show Plot f
Thumbnail
matplotlib Matplotlib 建新圖,基本步驟 Step 1 :Prepare Data Step 2 :Create Plot Step 3 :Plot Step 4 :Customize Plot Step 5 :Save Plot Step 6 :Show Plot f
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News