您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用Python畫王者榮耀英雄能力雷達圖”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Python畫王者榮耀英雄能力雷達圖”吧!
現有以下表格,我需要畫成第二張圖中的雷達圖(類似fifa足球、王者榮耀里面的那種球員能力圖)
雷達圖函數用到以下包:
import math
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
導入中文相關字體
# 導入中文
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)
# 根據能力項等分圓
angles = np.linspace(0, 2 * np.pi, len(abilities), endpoint=False)
angles = np.append(angles, angles[0])
# 生成n個子圖
fg, axes = plt.subplots(math.ceil(len(data_list) / rows), rows, subplot_kw=dict(polar=True),figsize=(9,9))
# 調整子圖間距
plt.subplots_adjust(wspace =0.6, hspace =0.6)
# 打散為一維數組
axes = axes.ravel()
# 獲取所有支持的顏色
colors = list(mcolors.TABLEAU_COLORS)
# 循環繪制
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])
# 設置角度
ax.set_xticks(angles)
# 設置坐標軸名稱
ax.set_xticklabels(abilities)
# 設置名稱
ax.set_title(name, size=10, color='black', position=(0.5, 0.4))
# 設置極徑最小值
ax.set_rmin(min)
# 設置極徑最大值(最大值加0.1,要不線條最外圈線顯示不完全)
ax.set_rmax(max + 0.1)
i = i + 1
plt.show()
調用:
#數據
abilities = ['靈活性', '功能性', '平穩性', '安全性', '耐用性', '經濟性']
super_heros = {
'固定點降落': [2,1,5,5,4,3],
'任意點降落': [5,5,2,3,3,4],
'局部最優點降落': [4,5,4,4,3,4],
}
#畫圖
generate_ability_map(abilities, super_heros)
程序運行后,得到文中開始的圖:
感謝各位的閱讀,以上就是“怎么用Python畫王者榮耀英雄能力雷達圖”的內容了,經過本文的學習后,相信大家對怎么用Python畫王者榮耀英雄能力雷達圖這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。