極座標長條圖
這篇教學會延伸 matplotlib 的 bar() 方法,搭配極座標的顯示模式,將資料繪製成極座標長條圖。
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
import matplotlib
要進行本篇的範例,必須先載入 matplotlib 函式庫的 pyplot 模組,範例將其獨立命名為 plt。
import matplotlib.pyplot as plt
單一數據的極座標長條圖
下方的程式碼延伸了長條圖的做法,先將 x 軸的數據轉換為「弧度」,再將數據以長條圖的方式,顯示在極座標系統裡。
import matplotlib.pyplot as plt
x = x = [math.radians(i*72) for i in range(5)] # 由角度轉換成弧度
y = [7,8,5,12,6]
fig = plt.figure(figsize=(6,6))
plt.subplot(projection='polar') # 設定 projection='polar' 表示極座標系統
# plt.subplot(polar=True)
plt.bar(x,y)
plt.show()
多組數據的極座標長條圖
如果有多組數據,除了可以設定每筆數據的間隔角度,也可透過不同的顏色區隔,下方透過極座標長條圖的方式,顯示兩組資料 ( 一組有十筆,另一組有五筆 )。
import matplotlib.pyplot as plt
import math
import random
x1 = [math.radians(random.randint(0,360)) for i in range(10)] # 隨機十個 0~360 度的數值,轉換成弧度
y1 = [random.randint(1,30) for i in range(10)] # 隨機十個 1~30 的數據
x2 = [math.radians(random.randint(0,360)) for i in range(5)] # 隨機五個 0~360 度的數值,轉換成弧度
y2 = [random.randint(1,30) for i in range(5)] # 隨機五個 1~30 的數據
fig = plt.figure(figsize=(6,6))
ax = plt.subplot(projection='polar')
ax.bar(x1,y1,alpha=0.4, width=0.5, color='#f00')
ax.bar(x2,y2,alpha=0.4, width=0.5)
plt.show()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~