球员能力图(含具体分析过程) 原创

1148-张同学

发表文章数:63

首页 » 数据科学库 » 正文

需要注意的是 由于散点图的值是随机产生的,因此每个绘图时产生的值都不相同。

绘制空白的四张子图

// An highlighted block
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

plt.style.use('ggplot')#绘图风格
font=FontProperties(fname=r'c:/windows/fonts/simsun.ttc',size=12) #字体与电脑匹配后正确识别

#设置6种标签
ability_size=6
ability_label=[u'进攻',u'防守',u'盘带',u'速度',u'体力',u'射术']

#绘制四张子图
ax1=plt.subplot(221,projection='polar')
ax2=plt.subplot(222,projection='polar')
ax3=plt.subplot(223,projection='polar')
ax4=plt.subplot(224,projection='polar')

plt.show()

球员能力图(含具体分析过程)                    原创

绘制六边形并填充颜色

// An highlighted block
#四个球员的数值变量  标签,最小值和最大值的范围
player={
    'M':np.random.randint(size=ability_size,low=60,high=100),
    'H':np.random.randint(size=ability_size,low=60,high=100),
    'P':np.random.randint(size=ability_size,low=60,high=100),
    'Q':np.random.randint(size=ability_size,low=60,high=100)}

#极坐标角度划分为六份
theta=np.linspace(0,2*np.pi,6,endpoint=False)
theta=np.append(theta,theta[0])
#球员特性绘制
player['M']=np.append(player['M'],player['M'][0])
#绘制六边形
ax1.plot(theta,player['M'],'r')
# #图形颜色填充
ax1.fill(theta,player['M'],'r',alpha=0.3)


plt.show()

球员能力图(含具体分析过程)                    原创

设计六边形的标签和六个角的标签

// An highlighted block
#六边形的角的标签
ax1.set_xticks(theta)
ax1.set_xticklabels(ability_label,y=0.05,fontproperties=font)
#y设置图形的标签
ax1.set_title(u'梅西',fontproperties=font,y=1.01,color='r',size=15)


plt.show()

球员能力图(含具体分析过程)                    原创

整体绘图

四个图形绘制的算法相似,剩余三个的绘制方式如下:

// An highlighted block
player['H']=np.append(player['H'],player['H'][0])
ax2.plot(theta,player['H'],'g')
ax2.fill(theta,player['H'],'g',alpha=0.3)
ax2.set_xticks(theta)
ax2.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax2.set_title(u'哈维',fontproperties=font,y=1.01,color='g',size=15)

player['P']=np.append(player['P'],player['P'][0])
ax3.plot(theta,player['P'],'b')
ax3.fill(theta,player['P'],'b',alpha=0.3)
ax3.set_xticks(theta)
ax3.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax3.set_title(u'皮克',fontproperties=font,y=1.01,color='b',size=15)

player['Q']=np.append(player['Q'],player['Q'][0])
ax4.plot(theta,player['Q'],'y')
ax4.fill(theta,player['Q'],'y',alpha=0.3)
ax4.set_xticks(theta)
ax4.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax4.set_title(u'切赫',fontproperties=font,y=1.01,color='y',size=15)

plt.show()

球员能力图(含具体分析过程)                    原创

总程序

// An highlighted block
'''球员能力图'''
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

plt.style.use('ggplot')#绘图风格
font=FontProperties(fname=r'c:/windows/fonts/simsun.ttc',size=12) #字体与电脑匹配后正确识别

#设置6种标签
ability_size=6
ability_label=[u'进攻',u'防守',u'盘带',u'速度',u'体力',u'射术']

#绘制四张子图
ax1=plt.subplot(221,projection='polar')
ax2=plt.subplot(222,projection='polar')
ax3=plt.subplot(223,projection='polar')
ax4=plt.subplot(224,projection='polar')

#四个球员的数值变量  标签,最小值和最大值的范围
player={
    'M':np.random.randint(size=ability_size,low=60,high=100),
    'H':np.random.randint(size=ability_size,low=60,high=100),
    'P':np.random.randint(size=ability_size,low=60,high=100),
    'Q':np.random.randint(size=ability_size,low=60,high=100)}

#极坐标角度划分为六份
theta=np.linspace(0,2*np.pi,6,endpoint=False)
theta=np.append(theta,theta[0])

#球员特性绘制
player['M']=np.append(player['M'],player['M'][0])
#绘制六边形
ax1.plot(theta,player['M'],'r')
# #图形颜色填充
ax1.fill(theta,player['M'],'r',alpha=0.3)
#六边形的角的标签
ax1.set_xticks(theta)
ax1.set_xticklabels(ability_label,y=0.05,fontproperties=font)
#y设置图形的标签
ax1.set_title(u'梅西',fontproperties=font,y=1.01,color='r',size=15)

player['H']=np.append(player['H'],player['H'][0])
ax2.plot(theta,player['H'],'g')
ax2.fill(theta,player['H'],'g',alpha=0.3)
ax2.set_xticks(theta)
ax2.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax2.set_title(u'哈维',fontproperties=font,y=1.01,color='g',size=15)

player['P']=np.append(player['P'],player['P'][0])
ax3.plot(theta,player['P'],'b')
ax3.fill(theta,player['P'],'b',alpha=0.3)
ax3.set_xticks(theta)
ax3.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax3.set_title(u'皮克',fontproperties=font,y=1.01,color='b',size=15)

player['Q']=np.append(player['Q'],player['Q'][0])
ax4.plot(theta,player['Q'],'y')
ax4.fill(theta,player['Q'],'y',alpha=0.3)
ax4.set_xticks(theta)
ax4.set_xticklabels(ability_label,y=0.05,fontproperties=font)
ax4.set_title(u'切赫',fontproperties=font,y=1.01,color='y',size=15)

plt.show()

未经允许不得转载:作者:1148-张同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《球员能力图(含具体分析过程) 原创》 发布于2021-02-05

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录