首頁 > 科技

雷達圖的4種繪製方法,你更喜歡哪個?

2021-06-30 09:37:26

來源:資料STUDIO

作者:雲朵君

雷達圖是通過多個離散屬性比較物件的最直觀工具,掌握繪製雷達圖的方法將會為生活和工作帶來樂趣。本例資料來源於網路,某大學本科一年級不同分院學生在五種核心通識能力方面的資料,使用多個工具來繪製多級雷達圖,即在一組同心圓上填充不規則五邊形,其每個頂點到圓心的距離代表分院學生的某種能力。

本文通過Excel、PowerBI和Python分別繪製雷達圖,其中比較有意思的是在PowerBI裡運行Python程式碼,繪製雷達圖。下面我們就來一起學習吧。

方法一 Excel繪製

最簡單的方法便是使用Excel繪製雷達圖,繪圖步驟如下圖所示,選中資料,插入圖表,由於雷達圖不是最常用的圖表,需要展開所有圖表才能找到,展開方式如下圖所示。

這裡需要注意的是,第6步選擇類型後,下面有兩個雷達圖可供選擇,不仔細看,很容易混淆,他類型、顏色等都是一樣的。但他們分別將行和列作為維度,即行列倒置,選擇時需要仔細看清楚你需要的那個。

選擇結束後,就跟其他圖表一樣了,調整格式即可,如顏色、圖例排布,字型大小等等,結果如下。

方法二 PowerBI繪製

PowerBI(簡稱PB)其實是Excel的升級版中的一個,在Excel增強版裡有PowerQuery(簡稱PQ)功能,這裡使用的是PowerBI桌面版,其包含PowerQuery。

首先匯入資料到PowerBI內,資料匯入有多種方法,因為這裡資料量不多,我直接使用複製貼上的方法。首先創建表,然後直接貼上資料,最後載入即可。

如果你是第一次繪製雷達圖,這一步就是必須的。由於雷達圖不是常用的圖表,在PB預設的視覺化圖表選項裡沒有,所以需要在AppSource裡匯入視覺物件。具體操作如下圖所示,搜尋框裡輸入【Radar Chart】,找到對應的雷達圖物件,直接點新增即可。

如果你已經有雷達圖,即可直接繪圖。先在視覺化圖表裡找到並選擇雷達圖小圖示,再選擇資料,最後設定圖表樣式,按照自己的需求定製樣式。

這裡的繪圖方法也較簡單,而且但從樣式看,也似乎比在Excel裡的漂亮許多。此外,在PB裡還可以跟其他圖表聯動,包括各種切片,這裡有興趣的朋友可以研究研究,這裡就不做過多的介紹了。

經過部分樣式的調整,最後得到如下的結果。大家看看,這種方式你是否鐘意他呢?

方法三 Python繪製

以上兩個方法都不需要程式設計,就能得到精美的雷達圖。對於不喜歡或不擅長程式設計的小夥伴們,可以選擇上述兩種方式。下面介紹的兩種方式,都是需要程式設計的。不過只要你稍微掌握Python或R語言,這個雷達圖還是可以信手捏來的。(下面以Python為例)

下面用繪圖模組matplotlib繪製雷達圖,具體程式碼如下所示。

import numpy as npimport pandas as pdimport 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=['表達與溝通', '團隊合作','分析與綜合資訊 ','創新思維','批判性思維'], columns=['金融學院','文化傳媒學院','資訊學院 ','管理學院 ','人文教育學院'])radar_labels=dataset.indexnAttr=5data=dataset.values #資料值data_labels=dataset.columns# 設定角度angles=np.linspace(0,2*np.pi,nAttr, endpoint= False)data=np.concatenate((data, [data[0]])) angles=np.concatenate((angles, [angles[0]]))# 設定畫布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,'大學生通識能力分析', ha='center', size=20)# 設定圖例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()

結果展示。

運用Python繪製雷達圖靈活度更大,你可以任意配置你所需要的樣式,只要你對程式碼足夠熟悉。

方法四 Python + PowerBI繪製

下面再介紹一種比較有意思繪圖方法,就是在PowerBI內運行Python程式碼,將兩者整合在一起。

在使用這個功能之前,你需要確認下本機中是否有Python環境,如果沒有,也比較簡單,直接安裝一個anaconda,PowerBI會自動檢測Python環境。

如果你已經有這個環境,你就可以先將資料匯入,在來通過Python繪製圖形。

具體操作步驟我錄了一個小視訊,大家可以感受下。這裡不得不說PowerBI的強大。這裡得到的結果與在jupyter裡繪製的圖形長得一模一樣。他就是跟PowerBI整合到一起了,小編認為,在PowerBI中可以用Python程式碼繪製PowerBI不能繪製,或難以繪製的一些複雜圖形,作為PowerBI的一個補充,這樣才是強強聯合,否則就是本末倒置了。

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

當然,肯定不限於小編所列舉的這幾中方法,還有很多其他繪製雷達圖的方法,大家都可以去嘗試。歡迎一起探討學習。


IT145.com E-mail:sddin#qq.com