最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python數(shù)據(jù)可視化之從繪制精美雷達圖的新手指南

 更新時間:2025年11月10日 08:23:12   作者:燭陰  
這篇文章主要為大家詳細介紹了Pytho如何繪制精美雷達圖從而實現(xiàn)數(shù)據(jù)可視化的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下

安裝必要的庫

我們需要安裝兩個核心的 Python 庫:matplotlib 用于繪圖,numpy 用于高效的數(shù)值計算:

pip install matplotlib numpy

繪制雷達圖的核心邏輯

創(chuàng)建雷達圖的過程可以清晰地分解為以下幾步,理解了這些步驟,你就能自如地應對各種定制化需求:

  • 數(shù)據(jù)準備:確定雷達圖需要展示的幾個維度(標簽),以及每個對象在這些維度上的具體數(shù)值。
  • 創(chuàng)建極坐標畫布:雷達圖并非畫在常規(guī)的直角坐標系上,而是畫在一個圓形布局的極坐標系 (Polar Coordinates) 上。
  • 計算角度:根據(jù)維度的數(shù)量,將 360 度的圓進行等分,確定每個維度軸線所在的角度。
  • 閉合圖形:為了讓雷達圖形成一個封閉的多邊形,我們需要在數(shù)據(jù)和角度列表的末尾,額外補充上第一個點的數(shù)據(jù)和角度。
  • 繪圖與美化:在坐標系上繪制數(shù)據(jù)點連線、填充顏色、添加網(wǎng)格、標簽、圖例和標題,使圖表變得完整且易于解讀。

示例代碼

現(xiàn)在,讓我們用具體的代碼來實現(xiàn)一個“籃球運動員能力對比”的雷達圖。

import numpy as np
import matplotlib.pyplot as plt

def create_table_tennis_radar_chart():
    """
    創(chuàng)建一個專門用于展示乒乓球運動員六維能力數(shù)據(jù)的雷達圖。
    """
    # 解決中文顯示問題
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False

    # 1. 定義六個維度的標簽
    labels = np.array(['力量', '速度', '技巧', '防守', '發(fā)球', '經(jīng)驗'])
    n_labels = len(labels)

    # 2. 準備運動員的數(shù)據(jù) (這里是假設的示例數(shù)據(jù))
    # “六邊形戰(zhàn)士”的數(shù)據(jù),各項能力非常均衡且頂尖
    hex_warrior_stats = [98, 95, 99, 92, 96, 100]
    # “進攻型選手”的數(shù)據(jù),力量和速度突出,防守相對是短板
    attacker_stats = [100, 98, 85, 75, 90, 80]

    # 3. 計算角度 (360度/6)
    angles = np.linspace(0, 2 * np.pi, n_labels, endpoint=False)

    # 4. 閉合圖形數(shù)據(jù)
    hex_warrior_stats_closed = np.concatenate((hex_warrior_stats, [hex_warrior_stats[0]]))
    attacker_stats_closed = np.concatenate((attacker_stats, [attacker_stats[0]]))
    angles_closed = np.concatenate((angles, [angles[0]]))

    # 5. 繪圖
    fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))

    # 設置坐標軸范圍
    ax.set_ylim(0, 105)

    # 繪制“六邊形戰(zhàn)士”
    ax.plot(angles_closed, hex_warrior_stats_closed, 'o-', color='gold', linewidth=2, label='“六邊形戰(zhàn)士”')
    ax.fill(angles_closed, hex_warrior_stats_closed, 'gold', alpha=0.25)

    # 繪制“進攻型選手”
    ax.plot(angles_closed, attacker_stats_closed, 'o-', color='red', linewidth=2, label='進攻型選手')
    ax.fill(angles_closed, attacker_stats_closed, 'red', alpha=0.25)

    # 6. 美化圖表
    # 設置維度標簽
    ax.set_thetagrids(angles * 180 / np.pi, labels, fontsize=14)

    # 設置半徑刻度標簽
    ax.set_rlabel_position(0)
    ax.set_yticklabels(['', '20', '40', '60', '80', '100'], color="grey", size=10)

    # 添加標題和圖例
    plt.title('乒乓球運動員能力對比雷達圖', size=22, color='black', y=1.1)
    plt.legend(loc='best', bbox_to_anchor=(1.1, 1.1), fontsize=12)

    # 顯示網(wǎng)格
    ax.grid(True, linestyle='--', linewidth=0.5, color='gray')
    
    # 顯示圖表
    plt.show()

# --- 主程序入口 ---
if __name__ == "__main__":
    create_table_tennis_radar_chart()

解析:

  • plt.rcParams 設置:這兩行是為了確保 Matplotlib 可以正確顯示中文字符。如果你不設置,圖表中的中文可能會顯示為方框。你需要確保你的系統(tǒng)中有 SimHei (黑體) 或其他中文字體。
  • np.linspace(0, 2 * np.pi, n_labels, endpoint=False):這是創(chuàng)建角度數(shù)組的核心。它在 0 到 360 度(2*np.pi)之間,生成 n_labels 個等分的角度值。endpoint=False參數(shù)是關(guān)鍵,它避免了 360 度和 0 度重合。
  • np.concatenate():這個 NumPy 函數(shù)用于連接數(shù)組。我們用它將第一個數(shù)據(jù)點和第一個角度值拼接到數(shù)組的末尾,從而實現(xiàn)圖形的閉合。
  • subplot_kw=dict(polar=True):在創(chuàng)建子圖(ax)時,這個參數(shù)告訴 Matplotlib:“我想要的不是普通的直角坐標系,而是一個極坐標系”。
  • ax.plot()ax.fill()plot 負責畫出數(shù)據(jù)的輪廓線,而 fill 則為這個輪廓區(qū)域填充上帶有一定透明度(alpha)的顏色,使得重疊區(qū)域也能清晰可見。
  • ax.set_thetagrids():這個函數(shù)專門用于在極坐標上設置角度網(wǎng)格線(也就是我們的維度軸)的位置和顯示的標簽。它需要將弧度制的 angles 轉(zhuǎn)換為角度制 (angles * 180 / np.pi)。

效果

到此這篇關(guān)于Python數(shù)據(jù)可視化之從繪制精美雷達圖的新手指南的文章就介紹到這了,更多相關(guān)Python繪制雷達圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • matplotlib作圖添加表格實例代碼

    matplotlib作圖添加表格實例代碼

    這篇文章主要介紹了matplotlib作圖添加表格實例代碼,實例繪制了一個簡單的折線圖,并且在圖中添加了一個表格,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 如何使用Pytorch完成圖像分類任務詳解

    如何使用Pytorch完成圖像分類任務詳解

    如果你剛剛開始學習 PyTorch,并想學習如何做一些基本的圖像分類,可以看看本文,這篇文章主要給大家介紹了關(guān)于如何使用Pytorch完成圖像分類任務的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 實例詳解Python裝飾器與閉包

    實例詳解Python裝飾器與閉包

    閉包是Python裝飾器的基礎。要理解閉包,先要了解Python中的變量作用域規(guī)則。本文主要給大家介紹Python裝飾器與閉包的相關(guān)知識,需要的朋友可以參考下
    2019-07-07
  • Python3 replace()函數(shù)使用方法

    Python3 replace()函數(shù)使用方法

    這篇文章主要介紹了Python3 replace()函數(shù)使用方法,需要的朋友可以參考下
    2018-03-03
  • Python畫圖小案例之多啦A夢叮當貓超詳細注釋

    Python畫圖小案例之多啦A夢叮當貓超詳細注釋

    在看了很多Python教程之后,覺得是時候做點什么小項目來練練手了,于是想來想去,用python寫了一個童年記憶的卡通人物哆啦A夢,代碼注釋無比詳細清楚,快來看看吧
    2021-09-09
  • python 實現(xiàn)return返回多個值

    python 實現(xiàn)return返回多個值

    今天小編就為大家分享一篇python 實現(xiàn)return返回多個值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python enumerate函數(shù)的使用方法總結(jié)

    python enumerate函數(shù)的使用方法總結(jié)

    這篇文章主要介紹了python enumerate使用方法總結(jié),enumerate函數(shù)用于遍歷序列中的元素以及它們的下標,有興趣的可以了解一下
    2017-11-11
  • 使用Python編寫一個SQL語句自動轉(zhuǎn)換工具(UPDATE到INSERT轉(zhuǎn)換)

    使用Python編寫一個SQL語句自動轉(zhuǎn)換工具(UPDATE到INSERT轉(zhuǎn)換)

    在日常數(shù)據(jù)庫維護和數(shù)據(jù)處理過程中,我們經(jīng)常需要將UPDATE語句轉(zhuǎn)換為INSERT語句,特別是在數(shù)據(jù)遷移、備份恢復或測試數(shù)據(jù)準備的場景中,本文將介紹如何使用Python編寫一個自動化工具,實現(xiàn)UPDATE語句到INSERT語句的高效轉(zhuǎn)換,需要的朋友可以參考下
    2025-09-09
  • Python結(jié)合SQLite構(gòu)建一個完整數(shù)據(jù)驅(qū)動應用的終極指南

    Python結(jié)合SQLite構(gòu)建一個完整數(shù)據(jù)驅(qū)動應用的終極指南

    這篇文章主要為大家詳細介紹了Python結(jié)合SQLite構(gòu)建一個完整數(shù)據(jù)驅(qū)動應用的相關(guān)方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2026-01-01
  • python中黃金分割法實現(xiàn)方法

    python中黃金分割法實現(xiàn)方法

    這篇文章主要介紹了python中黃金分割法實現(xiàn)方法,涉及Python數(shù)學計算的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評論

慈溪市| 温宿县| 仁化县| 沧州市| 乌拉特前旗| 长春市| 辽中县| 白银市| 二连浩特市| 鹰潭市| 建阳市| 云南省| 遂昌县| 琼结县| 古丈县| 乐清市| 博湖县| 新郑市| 洛阳市| 邮箱| 岳池县| 华安县| 关岭| 广东省| 五峰| 桃源县| 怀远县| 乐至县| 宜阳县| 尼玛县| 辽宁省| 威远县| 保德县| 金寨县| 商南县| 临桂县| 密山市| 高唐县| 琼中| 滦平县| 双辽市|