WeHelp
Matplotlib 是 Python 用來做資料視覺化的熱門工具,能建立各式各樣的資料圖表。
  1. 簡介、安裝、快速開始
  2. 繪製圓餅圖
  3. 繪製折線圖
  4. 繪製散佈圖
  5. 繪製長條圖
  6. 繪製直方圖
  7. 繪製 K 線圖
  8. 中文字型問題處理
繪製散佈圖
# 使用 Matplotlib 繪製散佈圖(Scatter Chart) 散佈圖適合用來觀察兩個數值變數之間的關係,例如: - 身高與體重 - 廣告費用與銷售量 - 溫度與冰淇淋銷量 - 兩組資料是否具有相關性 Matplotlib 中主要使用 `plt.scatter()` 函式繪製散佈圖。 --- ## 一、基本語法 ```python import matplotlib.pyplot as plt plt.scatter(x, y) plt.show() ``` 其中: - `x`:X 軸資料 - `y`:Y 軸資料 - `x` 和 `y` 必須具有相同的資料筆數 常見的 `scatter()` 設定如下: ```python plt.scatter( x, y, s=大小, c=顏色, marker='樣式', alpha=透明度, edgecolors='邊框顏色', cmap='色彩地圖' ) ``` ### 常用參數 | 參數 | 說明 | 範例 | |---|---|---| | `s` | 點的大小 | `s=80` | | `c` | 點的顏色,也可以指定數值資料 | `c='red'` | | `marker` | 點的形狀 | `marker='o'` | | `alpha` | 透明度,範圍 0~1 | `alpha=0.6` | | `edgecolors` | 點的邊框顏色 | `edgecolors='black'` | | `cmap` | 顏色映射方式 | `cmap='viridis'` | | `label` | 圖例名稱 | `label='資料'` | --- # 範例一:繪製基本散佈圖 以下範例以「讀書時間」和「考試成績」為資料。 ```python import matplotlib.pyplot as plt # 資料 study_hours = [1, 2, 3, 4, 5, 6, 7, 8] scores = [50, 55, 60, 65, 72, 78, 85, 92] # 繪製散佈圖 plt.scatter( study_hours, scores, color='steelblue', s=80, alpha=0.8, edgecolors='black' ) # 設定標題與座標軸 plt.title('Study Hours vs. Exam Scores') plt.xlabel('Study Hours') plt.ylabel('Exam Scores') # 顯示格線 plt.grid(True, linestyle='--', alpha=0.5) # 顯示圖表 plt.show() ``` ### 說明 ```python color='steelblue' ``` 設定所有資料點的顏色。 ```python s=80 ``` 設定資料點大小。 ```python alpha=0.8 ``` 設定透明度,數值越小越透明。 ```python edgecolors='black' ``` 設定資料點的黑色邊框,使每個點更明顯。 --- # 範例二:使用不同顏色與大小表示資料 以下範例使用: - X 軸:廣告費用 - Y 軸:銷售量 - 顏色:利潤高低 - 點的大小:訂單數量 ```python import matplotlib.pyplot as plt # 資料 advertising_cost = [10, 20, 30, 40, 50, 60, 70, 80] sales = [15, 25, 28, 40, 45, 58, 65, 75] profit = [2, 5, 4, 8, 10, 13, 15, 18] orders = [20, 30, 25, 45, 50, 70, 80, 100] # 繪製散佈圖 plt.scatter( advertising_cost, sales, c=profit, # 以 profit 決定顏色 s=[n * 5 for n in orders], # 以訂單數量決定大小 cmap='viridis', alpha=0.75, edgecolors='black' ) # 加入色彩條 colorbar = plt.colorbar() colorbar.set_label('Profit') # 設定圖表資訊 plt.title('Advertising Cost vs. Sales') plt.xlabel('Advertising Cost') plt.ylabel('Sales') plt.grid(True, linestyle='--', alpha=0.5) plt.show() ``` ### 說明 ```python c=profit ``` 將 `profit` 的數值轉換成不同顏色。數值較大或較小會對應到不同顏色。 ```python cmap='viridis' ``` 指定顏色映射方式。常見的色彩地圖包括: ```python 'viridis' 'plasma' 'coolwarm' 'rainbow' ``` ```python s=[n * 5 for n in orders] ``` 根據訂單數量調整資料點大小。訂單越多,圖上的點越大。 ```python plt.colorbar() ``` 加入色彩條,方便讀者了解顏色所代表的數值範圍。 --- ## 其他常見設定 ### 1. 設定座標軸範圍 ```python plt.xlim(0, 100) plt.ylim(0, 100) ``` ### 2. 修改圖表大小 ```python plt.figure(figsize=(8, 5)) ``` 完整用法: ```python import matplotlib.pyplot as plt plt.figure(figsize=(8, 5)) plt.scatter([1, 2, 3], [4, 5, 6]) plt.show() ``` ### 3. 儲存圖片 ```python plt.savefig('scatter_chart.png', dpi=300, bbox_inches='tight') ``` 通常要放在 `plt.show()` 之前。 ### 4. 使用圖例 ```python plt.scatter(x, y, color='red', label='資料 A') plt.legend() ``` 若有多組資料,可以分別繪製: ```python plt.scatter(x1, y1, color='blue', label='Group A') plt.scatter(x2, y2, color='red', label='Group B') plt.legend() ``` --- ## 總結 繪製散佈圖的基本流程是: 1. 匯入 Matplotlib 2. 準備 X 軸與 Y 軸資料 3. 使用 `plt.scatter()` 繪圖 4. 設定標題、座標軸、顏色、大小與透明度 5. 使用 `plt.show()` 顯示圖表 最基本的寫法如下: ```python import matplotlib.pyplot as plt plt.scatter(x, y) plt.xlabel('X') plt.ylabel('Y') plt.title('Scatter Chart') plt.grid(True) plt.show() ```
相關學習地圖、教學課程
Python 資料工程
從 0 開始,成為資料工程師的學習路徑。