1.先了解一下什么是極坐標
極點:以圓的中心作為極點O,
極軸:以0°的方向引一條射線極軸Ox,
極徑:選定一個長度單位r
極角:以Ox正方向開始計算角度θ(通常取逆時針方向)
極坐標:以極點O作為圓心,以極晝Ox的方向作為起點,以極徑r作為半徑,畫一個以極角θ的扇形,最終圓規腳定的位置就是極坐標M

2.利用matplotlib畫出一個點
import matplotlib.pyplot as plt import numpy as np """ 20:以20作為半徑 ylim(0,100):設置極軸的范圍 lw=2:表示極坐標圖案的寬度 ro:繪制的極坐標圖形為紅色圓點 """ plt.polar(0.25*np.pi,20,"ro",lw=2) plt.ylim(0,100) plt.show()

3.利用matplotlib畫多個點並連成封閉圖案
import matplotlib.pyplot as plt import numpy as np """ 繪制多個點,並且第一個點與最后一個點相同,使其成為閉合圖案 """ theta = np.array([0.25,0.75,1,1.5,0.25]) r = [20,60,40,80,20] plt.polar(theta*np.pi,r,"r-",lw=2) plt.ylim(0,100) plt.show()

4.填充顏色
import matplotlib.pyplot as plt import numpy as np #使用ggplot的繪圖風格 plt.style.use('ggplot') #構建角度與值 theta = np.array([0.25,0.75,1,1.5,0.25]) r = [20,60,40,80,20] plt.polar(theta*np.pi,r,"r-",lw=1) #設置填充顏色,並且透明度為0.75 plt.fill(theta*np.pi,r,'r',alpha=0.75) plt.ylim(0,100) #顯示網格線 plt.grid(True) plt.show()

5.繪制多個數據的雷達圖
import numpy as np import matplotlib.pyplot as plt # 中文和負號的正常顯示 plt.rcParams['font.sans-serif'] = 'Microsoft YaHei' plt.rcParams['axes.unicode_minus'] = False #使用ggplot的風格繪圖 plt.style.use('ggplot') #構造數據 values = [3.2,2.1,3.5,2.8,3,4] values_1 = [2.4,3.1,4.1,1.9,3.5,2.3] feature = ['個人能力','QC知識',"解決問題能力","服務質量意識","團隊精神","IQ"] N = len(values) #設置雷達圖的角度,用於平分切開一個平面 angles = np.linspace(0,2*np.pi,N,endpoint=False) #使雷達圖封閉起來 values = np.concatenate((values,[values[0]])) angles = np.concatenate((angles,[angles[0]])) values_1 = np.concatenate((values_1,[values_1[0]])) #繪圖 fig = plt.figure() #設置為極坐標格式 ax = fig.add_subplot(111, polar=True) #繪制折線圖 ax.plot(angles,values,'o-',linewidth=2,label='活動前') ax.fill(angles,values,'r',alpha=0.5) #填充顏色 ax.plot(angles,values_1,'o-',linewidth=2,label='活動后') ax.fill(angles,values_1,'b',alpha=0.5) #添加每個特質的標簽 ax.set_thetagrids(angles*180/np.pi,feature) #設置極軸范圍 ax.set_ylim(0,5) #添加標題 plt.title('活動前后員工狀態') #增加網格紙 ax.grid(True) plt.show()

