【matplotlib 實戰】--雷達圖

来源:https://www.cnblogs.com/wang_yb/archive/2023/10/27/17790984.html
-Advertisement-
Play Games

雷達圖(Radar Chart),也被稱為蛛網圖或星型圖,是一種用於可視化多個變數之間關係的圖表形式。雷達圖是一種顯示多變數數據的圖形方法。通常從同一中心點開始等角度間隔地射出三個以上的軸,每個軸代表一個定量變數,各軸上的點依次連接成線或幾何圖形。 雷達圖可以用來在變數間進行對比,或者查看變數中有沒 ...


雷達圖(Radar Chart),也被稱為蛛網圖或星型圖,是一種用於可視化多個變數之間關係的圖表形式。
雷達圖是一種顯示多變數數據的圖形方法。通常從同一中心點開始等角度間隔地射出三個以上的軸,每個軸代表一個定量變數,各軸上的點依次連接成線或幾何圖形。

雷達圖可以用來在變數間進行對比,或者查看變數中有沒有異常值。
雷達圖中每個軸的相對位置和角度通常是無信息的。每個變數都具有自己的軸,彼此間的距離相等,所有軸都有相同的刻度。
在將數據映射到這些軸上時,需要註意預先對數值進行標準化處理,保證各個軸之間的數值比例能夠做同級別的比較。

1. 主要元素

雷達圖的主要元素包括:

  1. 坐標軸:每個變數對應一個射線或軸線,從中心點向外延伸。射線的長度或角度表示該變數的值大小或比例。
  2. 數據點:在每個射線上,根據變數的值確定相應的數據點或標記點的位置。
  3. 雷達鏈:連接各個數據點或標記點形成的多邊形或區域,用於表示多個變數之間的關係。
  4. 區域範圍:雷達鏈所連接的區域,面積大小代表各個數據綜合的結果。

2. 適用的場景

雷達圖適用的分析場景包括:

  • 比較綜合表現:比較多個實體(如產品、團隊、個人等)在多個指標上的表現,幫助決策者瞭解它們之間的差異和相對優劣。
  • 評估績效和目標:幫助評估績效和目標達成情況,從而指導後續決策和改進措施。
  • 變數之間的關係趨勢:直觀地發現多個變數之間的關係和趨勢,例如某個變數的增長是否會導致其他變數的變化。
  • 強調優勢和劣勢:凸顯實體在某些指標上的優勢和劣勢,有助於決策者更好地瞭解實體的特點和優勢所在。

3. 不適用的場景

雷達圖不適用的分析場景有:

  • 無序數據:如果數據是無序的,無法明確確定各個變數之間的相對位置和關係,雷達圖的效果會大打折扣。
  • 數據缺失:如果某些變數的數據缺失或不完整,將導致雷達圖無法準確地展示各個變數之間的關係和差異。
  • 多個並行路徑:當存在多個並行路徑時,例如多個團隊或產品之間的比較,雷達圖可能無法清晰地展示它們之間的差異和相對優劣。

4. 分析實戰

本次通過雷達圖來分析下王者榮耀KPL聯盟幾位選手的比賽數據。

4.1. 數據來源

數據來自王者榮耀官網(2023年春季賽數據),整理好的數據可以從下麵下載:
https://databook.top/wzry/2023-spring

使用其中的文件:player-2023春季賽.csv

fp = "d:/share/data/player-2023春季賽.csv"

df = pd.read_csv(fp)
df

4.2. 數據清理

選手的數據一共有125條,本來想按勝率選擇最高的4位選手,發現勝率高的選手很多只參加了1,2場比賽。
所以選擇參加比賽最多6位選手來分析。

data = df.sort_values("比賽場次", ascending=False)
data = data.iloc[:6]
data

選擇每位選手下列5個屬性來繪製雷達圖:

  1. 經濟占比
  2. 傷害占比
  3. 承傷占比
  4. 推塔占比
  5. 參團率
filter_cols = ["選手", "經濟占比", "傷害占比", "承傷占比", "推塔占比", "參團率"]
data = data.loc[:, filter_cols]
data

image.png

將百分比數據轉為數值類型:

for col in filter_cols[1:]:
    data[col] = data[col].str.replace("%", "", regex=False)
    data[col] = data[col].astype("float")

data

image.png

4.3. 分析結果可視化

繪製6位選手的雷達圖:

N = 5 # 雷達圖屬性個數
angles = np.linspace(0, 2 * np.pi, N, endpoint=False)
angles = np.concatenate((angles, [angles[0]]))

fig = plt.figure(figsize=[10, 6])
for i in range(len(data)):
    values = data.iloc[i, 1:].tolist()
    values.append(values[0])

    position = "23" + str(i + 1)
    ax = fig.add_subplot(int(position), polar=True)
    ax.plot(angles, values, "o-")
    ax.fill(angles, values, alpha=0.4)
    ax.set_thetagrids(angles[:-1] * 180 / np.pi,
                      data.columns[1:].tolist())
    ax.set_title(data.iloc[i, 0], color="b")
    ax.set_ylim(0, 100)

plt.subplots_adjust(hspace=0.5)

image.png

參賽最多的6位選手,5位都是佛山DRG的隊員,說明他們的首發陣容很穩定。
5個屬性連接起來的面積,看起來還是射手打野的比較大,C位果然還是得看這兩個位置。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是做什麼用的 框架用途 在採集大量新聞網站時,不可避免的遇到動態載入的網站,這給配模版的人增加了很大難度。本來配靜態網站只需要兩個技能點:xpath和正則,如果是動態網站的還得抓包,遇到加密的還得js逆向。 所以就需要用瀏覽器渲染這些動態網站,來減少了配模板的工作難度和技能要求。動態載入的網站在新 ...
  • Hutool它是一個Java工具集類庫,包含了很多靜態方法的封裝:流處理、時間日期處理、正則處理、加解密處理、文件處理、集合處理等,可以說是項目中幾乎所有XxxxUtil的替代品,它可以使你更多的關註代碼邏輯,優雅的寫出高效代碼,避免“複製粘貼,改改再戰”。 ...
  • 函數 (1)函數的定義 函數使用func進行定義 函數是基本的代碼塊,用於執行一個任務 Go語言至少有一個main函數 函數聲明告訴了編譯器函數的名稱,返回類型和參數 //1.無參數無返回值函數的定義 func test1(){ fmt.Println("無參數無返回值函數的定義\n") } //2 ...
  • 作者:hinotoyk 鏈接:https://juejin.cn/post/6910215219822362632 背景:某日在公司中擼代碼的時候,在一個常用的controller中添加一個方法,測試時突然報錯說註入的service為null,搗鼓一陣發現後是方法修飾符寫成private,修改成pu ...
  • BeautifulSoup庫用於從HTML或XML文件中提取數據。它可以自動將複雜的HTML文檔轉換為樹形結構,並提供簡單的方法來搜索文檔中的節點,使得我們可以輕鬆地遍歷和修改HTML文檔的內容。廣泛用於Web爬蟲和數據抽取應用程式中。 ...
  • `Shiro`許可權框架認證失敗預設是重定向頁面的,這對於前後端分離的項目及其不友好,可能會造成請求404的問題。現在我們自定義過濾器實現認證失敗返回json數據。 ...
  • 1 引言 小團隊一般 10 人左右,其中常常是技術最牛的人做架構師(或TL)。所以,架構師在廣大碼農中的占比大概平均不到 10%。而架構師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟體架構師就更少了。 所以,大部分(超過九成的)碼農幹上許多年,還是做不了架構師,這是什麼原因造成的呢? 2 說 ...
  • 我們都知道java中,如果char類型和int類型做加減法,那麼char類型會被精度提升至int類型然後參與運算,返回的也是int類型的數據。 那麼如果表達式中參與運算的均為char類型,那麼表達式返回的類型是什麼呢? 'A' - 'a' 經過簡單測試,是int類型。 char c = 'w'; s ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...