繪製折線圖
# 使用 Matplotlib 繪製折線圖
Matplotlib 是 Python 常用的資料視覺化套件,可以使用 `matplotlib.pyplot` 的 `plot()` 函式繪製折線圖。
## 一、基本流程
```python
import matplotlib.pyplot as plt
plt.plot(x, y) # 繪製折線
plt.xlabel("X") # X 軸標籤
plt.ylabel("Y") # Y 軸標籤
plt.title("Line Chart")
plt.show() # 顯示圖表
```
其中:
- `x`:X 軸資料
- `y`:Y 軸資料
- `plt.plot(x, y)`:依照資料點繪製折線
- `plt.show()`:顯示圖表
---
## 二、常用設定
### 1. 線條樣式
```python
plt.plot(
x, y,
color="blue", # 線條顏色
linestyle="--", # 線型,例如 "-"、"--"、":"、"-."
linewidth=2, # 線寬
marker="o", # 資料點樣式
markersize=6, # 資料點大小
label="Sales" # 圖例名稱
)
```
常見設定:
| 參數 | 說明 |
|---|---|
| `color` | 線條顏色 |
| `linestyle` | 線型 |
| `linewidth` | 線條粗細 |
| `marker` | 資料點樣式 |
| `markersize` | 資料點大小 |
| `label` | 圖例文字 |
### 2. 圖表設定
```python
plt.figure(figsize=(8, 5)) # 圖表大小,單位為英吋
plt.title("圖表標題")
plt.xlabel("X 軸名稱")
plt.ylabel("Y 軸名稱")
plt.xlim(0, 10) # 設定 X 軸範圍
plt.ylim(0, 100) # 設定 Y 軸範圍
plt.grid(True) # 顯示網格
plt.legend() # 顯示圖例
plt.tight_layout() # 自動調整版面
```
---
# 範例一:繪製單一折線圖
以下範例顯示一週的每日氣溫變化。
```python
import matplotlib.pyplot as plt
# X 軸與 Y 軸資料
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
temperatures = [22, 24, 23, 25, 27, 28, 26]
# 設定圖表大小
plt.figure(figsize=(8, 5))
# 繪製折線圖
plt.plot(
days,
temperatures,
color="tomato",
marker="o",
linewidth=2,
markersize=7,
label="Temperature"
)
# 設定圖表資訊
plt.title("Weekly Temperature")
plt.xlabel("Day")
plt.ylabel("Temperature (°C)")
# 顯示網格與圖例
plt.grid(True, linestyle="--", alpha=0.5)
plt.legend()
# 自動調整版面並顯示
plt.tight_layout()
plt.show()
```
結果會顯示每日氣溫,並在每個資料點上標示圓形標記。
---
# 範例二:繪製多條折線並儲存圖片
以下範例比較兩個產品在數個月份的銷售量。
```python
import matplotlib.pyplot as plt
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
product_a = [120, 150, 180, 170, 210, 240]
product_b = [100, 130, 160, 190, 200, 220]
plt.figure(figsize=(9, 5))
# 繪製第一條折線
plt.plot(
months,
product_a,
color="royalblue",
marker="o",
linewidth=2,
label="Product A"
)
# 繪製第二條折線
plt.plot(
months,
product_b,
color="seagreen",
marker="s",
linewidth=2,
linestyle="--",
label="Product B"
)
# 設定標題與座標軸
plt.title("Monthly Sales Comparison")
plt.xlabel("Month")
plt.ylabel("Sales")
# 設定 Y 軸範圍
plt.ylim(0, 280)
# 顯示網格與圖例
plt.grid(axis="y", linestyle=":", alpha=0.6)
plt.legend()
plt.tight_layout()
# 儲存圖片
plt.savefig("sales_comparison.png", dpi=300)
# 顯示圖表
plt.show()
```
此範例中:
- 使用兩次 `plt.plot()` 繪製兩條折線。
- `label` 搭配 `plt.legend()` 顯示圖例。
- `linestyle="--"` 將 Product B 設定為虛線。
- `plt.savefig()` 可將圖表儲存成 PNG 圖片。
- `dpi=300` 可輸出較高解析度的圖片。
## 安裝 Matplotlib
如果尚未安裝,可以執行:
```bash
pip install matplotlib
```
使用 Python 執行程式後,呼叫 `plt.show()` 即可顯示折線圖。
相關學習地圖、教學課程
Python 資料工程