天天看點

Python資料分析入門(二十二):資料可視化之繪制雷達圖Python學習交流群:1039649593雷達圖使用plt.polar繪制雷達圖:使用子圖繪制雷達圖:

Python爬蟲、資料分析、網站開發等案例教程視訊免費線上觀看

https://space.bilibili.com/523606542 
           

Python學習交流群:1039649593

雷達圖

雷達圖(Radar Chart)又被叫做蜘蛛網圖,适用于顯示三個或更多的次元的變量的強弱情況。比如英雄聯盟中某個影響的屬性(法術傷害,實體防禦等),或者是某個企業在哪些業務方面的投入等,都可以用雷達圖友善的表示。

使用plt.polar繪制雷達圖:

matplotlib.pyplot

中,可以通過

plt.polar

來繪制雷達圖,這個方法的參數跟

plt.plot

非常的類似,隻不過是

x

軸的坐标點應該為弧度(2*PI=360°)。示例代碼如下:

properties = ['輸出','KDA','發育','團戰','生存']
values = [40,91,44,90,95,40]
theta = np.linspace(0,np.pi*2,6)
plt.polar(theta,values)
plt.xticks(theta,properties,fontproperties=font)
plt.fill(theta,values)
           

效果圖如下:

Python資料分析入門(二十二):資料可視化之繪制雷達圖Python學習交流群:1039649593雷達圖使用plt.polar繪制雷達圖:使用子圖繪制雷達圖:

其中有幾點需要注意:

  1. 因為polar并不會完成線條的閉合繪制,是以我們在繪制的時候需要在theta中和values中在最後多重複添加第0個位置的值,然後在繪制的時候就可以和第1個點進行閉合了。
  2. polar隻是繪制線條,是以如果想要把裡面進行顔色填充,那麼需要調用fill函數來實作。
  3. polar預設的圓圈的坐标是角度,如果我們想要改成文字顯示,那麼可以通過xticks來設定。

使用子圖繪制雷達圖:

在多子圖中,繪圖對象不再是

pyplot

而是

Axes

,而

Axes

及其子類繪制雷達圖則是通過将直角坐标轉換成極坐标,然後再繪制折線圖。示例代碼如下:

使用

plt.subplot

繪制的子圖:

properties = ['輸出','KDA','發育','團戰','生存']
 values = [40,91,44,90,95,40]
 theta = np.linspace(0,np.pi*2,6)
 # 生成一個子圖,并且指定子圖的類型為polar
 axes = plt.subplot(111,projection="polar")
 axes.plot(theta,values)
 axes.fill(theta,values)
           

使用plt.subplots繪制的子圖:

properties = ['輸出','KDA','發育','團戰','生存']
 values = [40,91,44,90,95,40]
 theta = np.linspace(0,np.pi*2,6)
 figure,axes = plt.subplots(1,1,subplot_kw={"projection":"polar"})
 axes.plot(theta,values)
           

使用fig.add_subplot繪制的子圖:

properties = ['輸出','KDA','發育','團戰','生存']
 values = [40,91,44,90,95,40]
 theta = np.linspace(0,np.pi*2,6)
 fig = plt.figure(figsize=(10,10))
 axes = fig.add_subplot(111,polar=True)
 axes.plot(theta,values)