雷達(dá)圖的4種繪制方法
雷達(dá)圖是通過多個離散屬性比較對象的最直觀工具,掌握繪制雷達(dá)圖的方法將會為生活和工作帶來樂趣。本例數(shù)據(jù)來源于網(wǎng)絡(luò),某大學(xué)本科一年級不同分院學(xué)生在五種核心通識能力方面的數(shù)據(jù),使用多個工具來繪制多級雷達(dá)圖,即在一組同心圓上填充不規(guī)則五邊形,其每個頂點(diǎn)到圓心的距離代表分院學(xué)生的某種能力。
本文通過Excel、PowerBI和Python分別繪制雷達(dá)圖,其中比較有意思的是在PowerBI里運(yùn)行Python代碼,繪制雷達(dá)圖。下面我們就來一起學(xué)習(xí)吧。
方法一 Excel繪制
最簡單的方法便是使用Excel繪制雷達(dá)圖,繪圖步驟如下圖所示,選中數(shù)據(jù),插入圖表,由于雷達(dá)圖不是最常用的圖表,需要展開所有圖表才能找到,展開方式如下圖所示。

這里需要注意的是,第6步選擇類型后,下面有兩個雷達(dá)圖可供選擇,不仔細(xì)看,很容易混淆,他類型、顏色等都是一樣的。但他們分別將行和列作為維度,即行列倒置,選擇時需要仔細(xì)看清楚你需要的那個。
選擇結(jié)束后,就跟其他圖表一樣了,調(diào)整格式即可,如顏色、圖例排布,字體大小等等,結(jié)果如下。

方法二 PowerBI繪制
PowerBI(簡稱PB)其實(shí)是Excel的升級版中的一個,在Excel增強(qiáng)版里有PowerQuery(簡稱PQ)功能,這里使用的是PowerBI桌面版,其包含PowerQuery。
首先導(dǎo)入數(shù)據(jù)到PowerBI內(nèi),數(shù)據(jù)導(dǎo)入有多種方法,因?yàn)檫@里數(shù)據(jù)量不多,我直接使用復(fù)制粘貼的方法。首先創(chuàng)建表,然后直接粘貼數(shù)據(jù),最后加載即可。

如果你是第一次繪制雷達(dá)圖,這一步就是必須的。由于雷達(dá)圖不是常用的圖表,在PB默認(rèn)的可視化圖表選項(xiàng)里沒有,所以需要在AppSource里導(dǎo)入視覺對象。具體操作如下圖所示,搜索框里輸入【Radar Chart】,找到對應(yīng)的雷達(dá)圖對象,直接點(diǎn)添加即可。

如果你已經(jīng)有雷達(dá)圖,即可直接繪圖。先在可視化圖表里找到并選擇雷達(dá)圖小圖標(biāo),再選擇數(shù)據(jù),最后設(shè)置圖表樣式,按照自己的需求定制樣式。
這里的繪圖方法也較簡單,而且但從樣式看,也似乎比在Excel里的漂亮許多。此外,在PB里還可以跟其他圖表聯(lián)動,包括各種切片,這里有興趣的朋友可以研究研究,這里就不做過多的介紹了。

經(jīng)過部分樣式的調(diào)整,最后得到如下的結(jié)果。大家看看,這種方式你是否鐘意他呢?

方法三 Python繪制
以上兩個方法都不需要編程,就能得到精美的雷達(dá)圖。對于不喜歡或不擅長編程的小伙伴們,可以選擇上述兩種方式。下面介紹的兩種方式,都是需要編程的。不過只要你稍微掌握Python或R語言,這個雷達(dá)圖還是可以信手捏來的。(下面以Python為例)
下面用繪圖模塊matplotlib繪制雷達(dá)圖,具體代碼如下所示。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# import matplotlib
# matplotlib.rcParams['font.family']='SimHei'
# matplotlib.rcParams['font.sans-serif']='SimHei'
dataset = pd.DataFrame(data=[[5, 6, 8, 6, 7],
[9, 6, 5, 7, 6],
[4, 8, 9, 8, 7],
[7, 8, 6, 7, 8],
[8, 7, 6, 7, 6]],
index=['表達(dá)與溝通', '團(tuán)隊合作','分析與綜合信息 ','創(chuàng)新思維','批判性思維'],
columns=['金融學(xué)院','文化傳媒學(xué)院','信息學(xué)院 ','管理學(xué)院 ','人文教育學(xué)院'])
radar_labels=dataset.index
nAttr=5
data=dataset.values #數(shù)據(jù)值
data_labels=dataset.columns
# 設(shè)置角度
angles=np.linspace(0,2*np.pi,nAttr,
endpoint= False)
data=np.concatenate((data, [data[0]]))
angles=np.concatenate((angles, [angles[0]]))
# 設(shè)置畫布
fig=plt.figure(facecolor="white",figsize=(10,6))
plt.subplot(111, polar=True)
# 繪圖
plt.plot(angles,data,'o-',
linewidth=1.5, alpha= 0.2)
# 填充顏色
plt.fill(angles,data, alpha=0.25)
plt.thetagrids(angles[:-1]*180/np.pi,
radar_labels,1.2)
plt.figtext(0.52, 0.95,'大學(xué)生通識能力分析',
ha='center', size=20)
# 設(shè)置圖例
legend=plt.legend(data_labels,
loc=(1.1, 0.05),
labelspacing=0.1)
plt.setp(legend.get_texts(),
fontsize='large')
plt.grid(True)
# plt.savefig('tongshi.png')
plt.show()
結(jié)果展示。

運(yùn)用Python繪制雷達(dá)圖靈活度更大,你可以任意配置你所需要的樣式,只要你對代碼足夠熟悉。
方法四 Python + PowerBI繪制
下面再介紹一種比較有意思繪圖方法,就是在PowerBI內(nèi)運(yùn)行Python代碼,將兩者集成在一起。
在使用這個功能之前,你需要確認(rèn)下本機(jī)中是否有Python環(huán)境,如果沒有,也比較簡單,直接安裝一個anaconda,PowerBI會自動檢測Python環(huán)境。
如果你已經(jīng)有這個環(huán)境,你就可以先將數(shù)據(jù)導(dǎo)入,在來通過Python繪制圖形。

具體操作步驟我錄了一個小視頻,大家可以感受下。這里不得不說PowerBI的強(qiáng)大。這里得到的結(jié)果與在jupyter里繪制的圖形長得一模一樣。他就是跟PowerBI集成到一起了,小編認(rèn)為,在PowerBI中可以用Python代碼繪制PowerBI不能繪制,或難以繪制的一些復(fù)雜圖形,作為PowerBI的一個補(bǔ)充,這樣才是強(qiáng)強(qiáng)聯(lián)合,否則就是本末倒置了。

OK,今天就介紹到這里,大家可以根據(jù)自己的特長或者愛好選擇適合自己的繪圖方法。





