Python數據可視化第 9 講:matplotlib極座標圖繪製函數polar

1. 極座標

在平面內取一個定點O,叫極點,引一條射線Ox,叫做極軸,再選定一個長度單位和角度的正方向(通常取逆時針方向)。對於平面內任何一點M,用ρ表示線段OM的長度(有時也用r表示),θ表示從Ox到OM的角度,ρ叫做點M的極徑,θ叫做點M的極角,有序數對 (ρ,θ)就叫點M的極座標,這樣建立的座標系叫做極座標系。通常情況下,M的極徑座標單位爲1(長度單位),極角座標單位爲rad(或°)

2. polar 函數介紹

polar 函數用於繪製極座標圖。polar 函數的調用格式如下:

polar(theta, r, **kwargs)

參數說明:

  • theta:標量或標量序列,數據點的極徑,必須參數。
  • r:標量或標量序列,數據點的極角,可選參數。如果不設置,則爲長度爲 len(theta) 默認序列替代 。
  • kwargs:Line2D 屬性,可選參數,kwargs 用於指定線標籤(用於自動圖例)、線寬、標記面顏色等特性。

2. polar 函數繪圖示例

2.2 繪製一個簡單的極座標圖

繪製一個簡單的極座標圖,完整代碼如下:

import matplotlib.pyplot as plt

# step1:準備畫圖的數據
xs = [1, 2, 3, 4, 5, 6, 7]

# step2:手動創建一個figure對象,相當於一個空白的畫布
fig = plt.figure()
# step3:在畫布上添加1個子塊,標定繪圖位置
ax = fig.add_subplot(1, 1, 1, projection='polar')
# step4: 繪製極座標圖
plt.polar(xs, 'ro')
ax.set_title('A simple polar example')
# 展示
plt.show()

上面代碼的運行結果:

2.2 繪製一個極座標圖並標註點座標

繪製一個極座標圖並標註點座標,與第一個例子不同,爲了分別給每個點標記座標,需要循環在極座標圖上繪製數據點。完整代碼如下:

import matplotlib.pyplot as plt
import numpy as np

# step1:準備畫圖的數據
xs = np.arange(7)
ys = xs ** 2

# step2:手動創建一個figure對象,相當於一個空白的畫布
fig = plt.figure()
# step3:在畫布上添加1個子塊,標定繪圖位置
ax = fig.add_subplot(1, 1, 1, projection='polar')
# step4:爲了分別給每個點標記座標,需要循環在極座標圖上繪製數據點
for x, y in zip(xs, ys):
    # 繪製極座標圖
    plt.polar(x, y, 'ro')
    # 增加文本說明,即每個點的極座標
    plt.text(x, y, '%d, %d' % (int(x), int(y)),
             horizontalalignment='center',
             verticalalignment='bottom')

ax.set_title('A simple polar example')
# 展示
plt.show()

上面代碼的運行結果:

3. plot 函數繪製極座標圖

matplotlib 的 pyplot 子庫提供了繪製極座標圖的方法,在調用 subplot() 創建子圖時通過設置 projection=‘polar’ 便可創建一個極座標子圖,然後調用 plot() 在極座標子圖中繪圖。下面就創建一個極座標子圖和一個直角座標子圖進行對比。

import matplotlib.pyplot as plt

# step1:準備畫圖的數據
theta = [1, 2, 3, 4, 5, 6, 7]

# step2:手動創建一個figure對象,相當於一個空白的畫布
fig = plt.figure()
# step3:在畫布上添加2個子塊,標定繪圖位置
ax1 = fig.add_subplot(1, 2, 1, projection='polar')  # 指定繪製極座標圖
ax2 = fig.add_subplot(1, 2, 2)
# step4: 繪圖
ax1.plot(theta, theta, '--')
ax2.plot(theta, theta, '--')

# 展示
plt.show()

上面代碼的運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章