溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python怎樣爬取王者榮耀英雄能力數(shù)據(jù)以及雷達(dá)圖顯示數(shù)據(jù)

發(fā)布時(shí)間:2021-10-26 09:31:01 來源:億速云 閱讀:412 作者:柒染 欄目:大數(shù)據(jù)

Python怎樣爬取王者榮耀英雄能力數(shù)據(jù)以及雷達(dá)圖顯示數(shù)據(jù),相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

[object Object]

Python怎樣爬取王者榮耀英雄能力數(shù)據(jù)以及雷達(dá)圖顯示數(shù)據(jù)

雷達(dá)圖函數(shù)用到以下包:

import math
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

導(dǎo)入中文相關(guān)字體

# 導(dǎo)入中文
import matplotlib.font_manager as font_manager

font_dirs = ['./font']
font_files = font_manager.findSystemFonts(fontpaths=font_dirs)
font_list = font_manager.createFontList(font_files)
font_manager.fontManager.ttflist.extend(font_list)
plt.rcParams['font.family'] = 'SimHei'

# 啟用主題
plt.style.use('ggplot')

獲取極徑范圍

# 獲取極徑范圍
def get_range(data_list):
    max = min = 0
    for _, data in data_list.items():
        for v in data:
            if v < min:
                min = v
            if v > max:
                max = v
    return [min, max]

生成能力分布圖

# 生成能力分布圖
def generate_ability_map(abilities, data_list, rows=3):
    min, max = get_range(data_list)
    # 根據(jù)能力項(xiàng)等分圓
    angles = np.linspace(0, 2 * np.pi, len(abilities), endpoint=False)
    angles = np.append(angles, angles[0])
    # 生成n個(gè)子圖
    fg, axes = plt.subplots(math.ceil(len(data_list) / rows), rows, subplot_kw=dict(polar=True),figsize=(9,9))
    # 調(diào)整子圖間距
    plt.subplots_adjust(wspace =0.6, hspace =0.6)
    # 打散為一維數(shù)組
    axes = axes.ravel()
    # 獲取所有支持的顏色
    colors = list(mcolors.TABLEAU_COLORS)
    # 循環(huán)繪制
    i = 0
    for name, data in data_list.items():
        data = np.append(np.array(data), data[0])
        ax = axes[i]
        # 繪制線條
        ax.plot(angles, data, color=colors[i])
        # 填充顏色
        ax.fill(angles, data, alpha=0.7, color=colors[i])
        # 設(shè)置角度
        ax.set_xticks(angles)
        # 設(shè)置坐標(biāo)軸名稱
        ax.set_xticklabels(abilities)
        # 設(shè)置名稱
        ax.set_title(name, size=10, color='black', position=(0.5, 0.4))
        # 設(shè)置極徑最小值
        ax.set_rmin(min)
        # 設(shè)置極徑最大值(最大值加0.1,要不線條最外圈線顯示不完全)
        ax.set_rmax(max + 0.1)
        i = i + 1
    plt.show()

調(diào)用:

#數(shù)據(jù)
abilities = ['靈活性', '功能性', '平穩(wěn)性', '安全性', '耐用性', '經(jīng)濟(jì)性']
super_heros = {
    '固定點(diǎn)降落': [2,1,5,5,4,3],
    '任意點(diǎn)降落': [5,5,2,3,3,4],
    '局部最優(yōu)點(diǎn)降落': [4,5,4,4,3,4],
}

#畫圖
generate_ability_map(abilities, super_heros)

看完上述內(nèi)容,你們掌握Python怎樣爬取王者榮耀英雄能力數(shù)據(jù)以及雷達(dá)圖顯示數(shù)據(jù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI