用多個指標(biāo)評判一個對象,你需要一張matplotlib雷達圖/極坐標(biāo)圖

圖片發(fā)自簡書App

文章鏈接:

https://mp.weixin.qq.com/s/Fm_W7QOfHXG6GsAIO8V69Q


有一種圖他可以根據(jù)指定指標(biāo)評價體系,給予評價并直觀反映出來,如:

1、從企業(yè)收益性、生產(chǎn)性、流動性、安全性和成長性這幾個方面評判經(jīng)營狀況;

2、根據(jù)9型人格每個維度打分,你屬于什么類型;

3、王者榮耀中英雄“殺、死、助、團戰(zhàn)率、推塔數(shù)、經(jīng)濟比”等評分的直觀體現(xiàn)等等。

對的,他就是我們今天要介紹給大家的雷達圖,英文名

Radar Chart,乳名蜘蛛網(wǎng)圖,學(xué)名星圖,別名戴布拉圖,他的坐標(biāo)軸很特別——平行坐標(biāo),軸徑向排列~O(∩_∩)O哈哈~

目? 錄

極坐標(biāo)介紹

Matplotlib繪制極坐標(biāo)圖

常用參數(shù)介紹

代碼實現(xiàn)



極坐標(biāo)介紹

極坐標(biāo)

1、極點:在平面內(nèi)取一個定點O;

2、極軸:引一條射線Ox

3、極徑:選定一個長度單位和角度的正方向(通常取逆時針方向)。對于平面內(nèi)任何一點M,用ρ表示線段OM的長度(有時也用r表示),θ表示從Ox到OM的角度,ρ叫做點M的極徑

4、極角:θ叫做點M的極角,

5、極坐標(biāo):有序數(shù)對 (ρ,θ)就叫點M的極坐標(biāo),這樣建立的坐標(biāo)系叫做極坐標(biāo)系。

通常情況下,M的極徑坐標(biāo)單位為1(長度單位),極角坐標(biāo)單位為rad(或°)

圖片發(fā)自簡書App



Matplotlib繪制極坐標(biāo)圖

創(chuàng)建極坐標(biāo)圖

matplotlib的pyplot子庫提供了繪制極坐標(biāo)圖的方法,在調(diào)用subplot()創(chuàng)建子圖時通過設(shè)置projection='polar',便可創(chuàng)建一個極坐標(biāo)子圖,然后調(diào)用plot()在極坐標(biāo)子圖中繪圖。

下面創(chuàng)建一個極坐標(biāo)子圖和一個直角坐標(biāo)子圖進行對比:

import numpy as np

from matplotlib import pyplot as plt

fig=plt.figure(figsize=(10,5))

ax1 = plt.subplot(121, projection='polar')? #極坐標(biāo)軸

ax2 = plt.subplot(122)

fig.subplots_adjust(wspace=0.4) #設(shè)置子圖間的間距,為子圖寬度的40%

theta=np.arange(0,2*np.pi,0.02)

ax1.plot(theta,theta/6,'-.',lw=2)

ax2.plot(theta,theta/6,'-.',lw=2)

plt.show()

圖片發(fā)自簡書App



常用參數(shù)介紹

繪制雷達圖,并沒有直接的函數(shù),而是用一下坐標(biāo)軸的參數(shù)予以定義。

極坐標(biāo)正方向

set_theta_direction:方法用于設(shè)置極坐標(biāo)的正方向

set_theta_direction的參數(shù)值為1,'counterclockwise'或者是'anticlockwise'的時候,正方向為逆時針;

set_theta_direction的參數(shù)值為-1或者是'clockwise'的時候,正方向為順時針;

極坐標(biāo)0°位置

set_theta_zero_location方法用于設(shè)置極坐標(biāo)0°位置

0°可設(shè)置在八個位置,分別為N, NW, W, SW, S, SE, E, NE

參數(shù)值為'N','NW','W','SW','S','SE','E','NE'時,0°分別對應(yīng)的位置為方位N, NW, W, SW, S, SE, E, NE;

極坐標(biāo)角度網(wǎng)格線顯示

set_thetagrids方法用于設(shè)置極坐標(biāo)角度網(wǎng)格線顯示

參數(shù)為所要顯示網(wǎng)格線的角度值列表

默認顯示0°、45°、90°、135°、180°、225°、270°、315°的網(wǎng)格線

極坐標(biāo)角度偏離

set_theta_offset方法用于設(shè)置角度偏離

參數(shù)值為弧度值數(shù)值

極坐標(biāo)極徑網(wǎng)格線顯示

set_rgrids方法用于設(shè)置極徑網(wǎng)格線顯示

參數(shù)值為所要顯示網(wǎng)格線的極徑值列表,最小值不能小于等于0

極坐標(biāo)極徑標(biāo)簽位置

set_rlabel_position方法用于設(shè)置極徑標(biāo)簽顯示位置

參數(shù)為標(biāo)簽所要顯示在的角度

極坐標(biāo)極徑范圍

set_rlim方法用于設(shè)置顯示的極徑范圍

參數(shù)為極徑最小值,最大值

極坐標(biāo)極徑最大值

set_rmax方法用于設(shè)置顯示的極徑最大值

該方法要在繪制完圖像后使用才有效

極坐標(biāo)極徑最小值

set_rmin方法用于設(shè)置顯示的極徑最小值

該方法要在繪制完圖像后使用才有效

極坐標(biāo)極徑網(wǎng)格線顯示范圍

set_rticks方法用于設(shè)置極徑網(wǎng)格線的顯示范圍

如ax.set_rticks(np.arange(0.1, 0.9, 0.2))



代碼實現(xiàn)

import numpy as np

from matplotlib import pyplot as plt

fig=plt.figure(figsize=(10,5))

ax=fig.add_subplot(1,1,1,polar=True) #設(shè)置一個坐標(biāo)軸為極坐標(biāo)體系

jingke={"推進":100,"戰(zhàn)績(KDA)":30,"生存":90,"團戰(zhàn)":60,"發(fā)育":60,"輸出":20} #創(chuàng)建英雄數(shù)據(jù)

y=np.array([i for i in jingke.values()]).astype(int) #提取英雄的信息

label=np.array([j for j in jingke.keys()]) #提取鍵作為標(biāo)簽

x = np.linspace(0, 2*np.pi, len(data1), endpoint=False) #data1里有幾個數(shù)據(jù),就把整圓360°分成幾份

x1 = np.concatenate((x, [x[0]])) #將x的第一個值添加到原來的x組成第一個和最后一個元素一致的新列表,以實現(xiàn)x閉合

y1 = np.concatenate((y, [y[0]])) #將y的第一個值添加到原來的y組成第一個和最后一個元素一致的新列表,以實現(xiàn)y閉合

#繪制極坐標(biāo)

ax.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #設(shè)置網(wǎng)格標(biāo)簽

ax.plot(x1,y1,"o-")

ax.set_theta_zero_location('E') #設(shè)置極坐標(biāo)0°位置

ax.set_rlim(0,100) #設(shè)置顯示的極徑范圍

ax.fill(x1,y1,facecolor='b', alpha=0.2) #填充顏色

ax.set_rlabel_position(15)

ax.set_title("荊軻",fontproperties="SimHei",fontsize=16) #設(shè)置標(biāo)題

plt.show()

效果圖如下:

圖片發(fā)自簡書App

更多精彩內(nèi)容,就在官方微信公眾號

https://mp.weixin.qq.com/s/Fm_W7QOfHXG6GsAIO8V69Q

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最后一次更新日期: 2019/4/20 Matplotlib 是一個 Python 的 2D繪圖庫,它以各種硬拷貝...
    jiedawang閱讀 1,642評論 0 4
  • 數(shù)據(jù)讀取、寫入、保存 第一行導(dǎo)入集成工具包,如pyplot(畫圖)、numpy(矩陣分析)、xlrd(讀取Exce...
    sssrx閱讀 802評論 0 0
  • 很多機器學(xué)習(xí)的問題都會涉及到有著幾千甚至數(shù)百萬維的特征的訓(xùn)練實例。這不僅讓訓(xùn)練過程變得非常緩慢,同時還很難找到一個...
    城市中迷途小書童閱讀 4,082評論 0 2
  • 1.基本圖形 散點圖 plt.scatter(x,y,s=20,c='b',marker='') 折線圖 plt....
    木木不彬閱讀 7,316評論 0 4
  • “再不瘋狂,我們就老了”。昨天一個男性朋友跟我說了這么一句話,當(dāng)時我立刻就激動了,話就變多了。看見瘋狂這兩個字就特...
    愛神秋啵啵閱讀 953評論 0 0

友情鏈接更多精彩內(nèi)容