蜘蛛網(wǎng)圖實(shí)現(xiàn)Python可視化的方法

數(shù)據(jù)可視化是數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)項(xiàng)目中十分重要的一環(huán)。通常,你需要在項(xiàng)目初期進(jìn)行探索性的數(shù)據(jù)分析(EDA),從而對(duì)數(shù)據(jù)有一定的了解,而且創(chuàng)建可視化確實(shí)可以使分析的任務(wù)更清晰、更容易理解,特別是對(duì)于大規(guī)模的高維數(shù)據(jù)集。
蜘蛛網(wǎng)圖(Spider Plot)是顯示一對(duì)多關(guān)系的最佳方法之一。換而言之,你可以繪制并查看多個(gè)與某個(gè)變量或類別相關(guān)的變量的值。在蜘蛛網(wǎng)圖中,一個(gè)變量相對(duì)于另一個(gè)變量的顯著性是清晰而明顯的,因?yàn)樵谔囟ǖ姆较蛏?,覆蓋的面積和距離中心的長(zhǎng)度變得更大。如果你想看看利用這些變量描述的幾個(gè)不同類別的對(duì)象有何不同,可以將它們并排繪制。

在上面的圖表中,我們很容易比較復(fù)仇者聯(lián)盟的不同屬性,并看到他們各自的優(yōu)勢(shì)所在!(請(qǐng)注意,這些數(shù)據(jù)是隨機(jī)設(shè)置的,我對(duì)復(fù)仇者聯(lián)盟的成員們沒(méi)有偏見。)
在這里,我們可以直接使用「matplotlib」而非「seaborn」來(lái)創(chuàng)建可視化結(jié)果。我們需要讓每個(gè)屬性沿圓周等距分布。我們將在每個(gè)角上設(shè)置標(biāo)簽,然后將值繪制為一個(gè)點(diǎn),它到中心的距離取決于它的值/大小。最后,為了顯示更清晰,我們將使用半透明的顏色來(lái)填充將屬性點(diǎn)連接起來(lái)得到的線條所包圍的區(qū)域。
# Import libs
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# Get the data
df=pd.read_csv("avengers_data.csv")
print(df)
"""
# Name Attack Defense Speed Range Health
0 1 Iron Man 83 80 75 70 70
1 2 Captain America 60 62 63 80 80
2 3 Thor 80 82 83 100 100
3 3 Hulk 80 100 67 44 92
4 4 Black Widow 52 43 60 50 65
5 5 Hawkeye 58 64 58 80 65
"""
# Get the data for Iron Man
labels=np.array(["Attack","Defense","Speed","Range","Health"])
stats=df.loc[0,labels].values
# Make some calculations for the plot
angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)
stats=np.concatenate((stats,[stats[0]]))
angles=np.concatenate((angles,[angles[0]]))
# Plot stuff
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, stats, 'o-', linewidth=2)
ax.fill(angles, stats, alpha=0.25)
ax.set_thetagrids(angles * 180/np.pi, labels)
ax.set_title([df.loc[0,"Name"]])
ax.grid(True)
plt.show()
以上就是使用蜘蛛網(wǎng)圖實(shí)現(xiàn)Python數(shù)據(jù)可視化的方法

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來(lái)源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)事宜
