這篇文章主要講解了“怎么用Python畫王者榮耀英雄能力雷達(dá)圖”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用Python畫王者榮耀英雄能力雷達(dá)圖”吧!
成都創(chuàng)新互聯(lián)公司是專業(yè)的廣東網(wǎng)站建設(shè)公司,廣東接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行廣東網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
現(xiàn)有以下表格,我需要畫成第二張圖中的雷達(dá)圖(類似fifa足球、王者榮耀里面的那種球員能力圖)
雷達(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)
程序運(yùn)行后,得到文中開始的圖:
感謝各位的閱讀,以上就是“怎么用Python畫王者榮耀英雄能力雷達(dá)圖”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用Python畫王者榮耀英雄能力雷達(dá)圖這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!