【世界杯限定】致敬梅西,用Python刻画足球场上的战神

news2024/12/26 0:02:39

最近卡塔尔世界杯正在火热的进行着,相信球迷们一定不会错过每一场精彩的比赛吧,在看球的同时,小伙伴们不要忘记自己的学习与工作哦,本人纯属路人,虽然不是很懂球,但是很喜欢梅西,所以我开始关注梅西,并用Python将梅西的生涯数据进行了简单的可视化,感兴趣的小伙伴可以了解一下哦,这样就可以将你喜欢的球星生涯数据进行可视化喽~ 

目录

前言

一、初识Matplotlib库,对数据进行简单的可视化操作

1. 画布

2. 可视化

二、致敬梅西,用Matplotlib将梅西的生涯数据进行可视化

1. 获取梅西的生涯数据

2. 将梅西的生涯数据进行可视化


前言

在如何对梅西的生涯数据进行可视化的问题上,我使用的是AnacondaJupter Notebook,主要原因是它特别适合对数据进行可视化操作~也特别适合学习Python的新手来记笔记~具体的下载操作可以进入Anaconda官网进行下载安装喔~

一、初识Matplotlib库,对数据进行简单的可视化操作

Matplotlib库是Python中的一个库,其中包含很多的绘图模块,这里我们主要运用的是pyplot绘图模块,所以接下来我会重点对其进行介绍哦~

>>首先我们需要引入matplotlib库,一般我们会将matplotlib库与numpy库一起使用

import matplotlib.pyplot as plt
import numpy as np

1. 画布

在画图之前,我们需要先考虑要画的图的大小喔~

(1)设置画布的大小,我们需要用到figure()函数:

fig=plt.figure(figsize=(w,h),dpi=dpi)

figsize为画布的宽与高,dpi为像素

(2)当我们需要在一个画布上画多张图的时候,那么我们就需要对画布进行分割,此时我们会用到add_subplot()函数:

fig.add_subplot(row,col,k)

row为行数,col为列数,绘制子图个数为row*col,并选中图片编号k

(3)在对画布的基本设置完成后,我们需要添加画布的内容,在这里,我们需要先加两行代码,使得图形正常显示中文:

plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False

在这里我介绍几个简单主体部分:

①对于整个画布来说:标题(title()函数)、x轴(xlabel()函数)、y轴(ylabel)、x轴刻度(xticks()函数)、y轴刻度(yticks()函数)

②对于子图来说:标题(set_title()函数)、x轴(set_xlabel()函数)、y轴(set_ylabel)、x轴刻度(set_xticks()函数)、y轴刻度(set_yticks()函数)

(4)其他函数:

plt.show():将图片打印出来(可视化)

plt.text():获取图中某个点的值

2. 可视化

在可视化数据时,我们需要先选择一个适合的图例,这里我主要介绍了五种不同的图例,选择你喜欢的一个,对数据进行可视化吧~

(1)折线图

在绘制折线图时,我们主要运用plt.plot()函数,其基本语法为:

plt.plot(x,y,color,marker,linestyle,linewidth,markersize,alpha)

其中,x为横坐标,y为纵坐标,color为颜色,marker为点型,linestyle为线型,linewidth为线宽,markersize为点型大小,alpha为透明度 

(2)散点图

在绘制散点图时,我们主要运用plt.scatter()函数,其基本语法为:

plt.scatter(x,y,s,c,marker,alpha)

其中,x为横坐标,y为纵坐标,c为颜色,marker为点型,alpha为透明度

(3)直方图

在绘制直方图时,我们主要运用plt.hist()函数,其基本语法为:

(n,bins,patches)=plt.hist(x,n,range,density,color,label,stacked,normed,data)

其中,x为数据,n为箱子bin的个数,density取0为频数图,取1为频率图 

(4)条形图

在绘制条形图时,我们主要运用plt.bar()函数,其基本语法为:

plt.bar(x,height,width,color,bottom,hold,data)

其中,x为x轴数据,height为x轴所代表数据的数量(条形图的高度),width条形图的宽度

(5)饼图

在绘制饼图的时候,我们主要运用plt.pie()函数,其基本语法为:

plt.pie(x,explode,labels,colors,autopct,pctdistance,shadow,labeldistance,radius)

其中,explode为离圆心的半径,colors为颜色,autopct为百分比,shadow为阴影,radius为半径 

二、致敬梅西,用Matplotlib将梅西的生涯数据进行可视化

1. 获取梅西的生涯数据

互联网的力量是巨大的,梅西的生涯数据在网上都可以查到,下面是我查到的部分梅西生涯数据,你也可以搜索你喜欢的球星,然后获得他的生涯数据,并将其导入excel表格中,然后就可以对其进行数据可视化啦~

2. 将梅西的生涯数据进行可视化

话不多说,直接将梅西的生涯数据进行可视化吧~

  

在这里附上我的源码,仅供参考哦~(可根据需求自型修改,绘制自己想要的图例)

import numpy as np      #导入numpy库
import xlrd             #导入xlrd库
import matplotlib.pyplot as plt     #导入matplotlib库
plt.rcParams['font.sans-serif']='SimHei'     #必写句
plt.rcParams['axes.unicode_minus']=False
wb=xlrd.open_workbook("d:\\【世界杯限定】致敬梅西.xls")     #打开梅西生涯数据的excel表格
sheet=wb.sheet_by_index(0)           #获取excel表格第一个表格,并对其进行操作
d=sheet.col_values(1)[2:171]         #获取日期
y1=sheet.col_values(7)[2:171]        #获取上场时间
y2=sheet.col_values(8)[2:171]        #获取进球数
y3=sheet.col_values(9)[2:171]        #获取助攻数
y4=sheet.col_values(10)[2:171]       #获取得牌数
fig=plt.figure(figsize=(16,18),dpi=80)     #设置画布大小
ax1=fig.add_subplot(2,2,1)           #设置子图,操作子图1       #子图1表示梅西整个生涯的上场时间与时间的关系
ax1.set_xlabel('时间',fontsize=12)          #y轴标签
ax1.set_ylabel('上场时间',fontsize=12)      #x轴标签
x=range(0,len(y1))
ax1.plot(x,y1,marker=',',c='blue')     #画生涯上场时间与时间关系的折线图
ax1.set_xticks(range(0,170,10),d[0:170:10],rotation=45)  
ax1.set_title('梅西上场时间',fontsize=15)    #标题
i_min1,Min1=np.argmin(y1),np.min(y1);            #最小值
i_max1,Max1=np.argmax(y1),np.max(y1);            #最大值
plt.text(i_max1-40,Max1,'最多上场时间:'+str(Max1),color='r',fontsize=12)     #获取最多上场时间
plt.text(i_min1,Min1-0.2,'最少上场时间:'+str(Min1),color='r',fontsize=12)    #获取最少上场时间
ax2=fig.add_subplot(2,2,2)            #操作子图2,操作方法同子图1
ax2.set_xlabel('时间',fontsize=12)         #子图2表示梅西整个生涯的进球数与时间的关系
ax2.set_ylabel('进球数',fontsize=12)
x=range(0,len(y2))
ax2.plot(x,y2,marker=',',c='orange')
ax2.set_xticks(range(0,170,10),d[0:170:10],rotation=45)
ax2.set_title('梅西进球数',fontsize=15)
i_min2,Min2=np.argmin(y2),np.min(y2);
i_max2,Max2=np.argmax(y2),np.max(y2);
plt.text(i_max2-40,Max2,'最多进球数:'+str(Max2),color='green',fontsize=12)
plt.text(i_min2,Min2-0.2,'最少进球数:'+str(Min2),color='green',fontsize=12)
ax3=fig.add_subplot(2,2,3)           #操作子图3,操作方法同子图1
ax3.set_xlabel('时间',fontsize=12)         #子图3表示梅西整个生涯的助攻数与时间的关系
ax3.set_ylabel('助攻数',fontsize=12)
x=range(0,len(y3))
ax3.plot(x,y3,marker=',',c='green')
ax3.set_xticks(range(0,170,10),d[0:170:10],rotation=45)
ax3.set_title('梅西助攻数',fontsize=15)
i_min3,Min3=np.argmin(y3),np.min(y3);
i_max3,Max3=np.argmax(y3),np.max(y3);
plt.text(i_max3-40,Max3,'最多助攻数:'+str(Max3),color='orange',fontsize=12)
plt.text(i_min3,Min3-0.1,'最少助攻数:'+str(Min3),color='orange',fontsize=12)
ax4=fig.add_subplot(2,2,4)           #操作子图4,操作方法同子图1
ax4.set_xlabel('时间',fontsize=12)          #子图4表示梅西整个生涯的得牌数与时间的关系
ax4.set_ylabel('得牌数',fontsize=12)
x=range(0,len(y4))
ax4.plot(x,y4,marker=',',c='r')     
ax4.set_xticks(range(0,170,10),d[0:170:10],rotation=45)
ax4.set_title('梅西得牌数',fontsize=15)
i_min4,Min4=np.argmin(y4),np.min(y4);
i_max4,Max4=np.argmax(y4),np.max(y4);
plt.text(i_max4,Max4+0.02,'最多得牌数:'+str(Max4),color='b',fontsize=12)
plt.text(i_min4,Min4-0.03,'最少得牌数:'+str(Min4),color='b',fontsize=12)
plt.show()     #数据可视化  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云边协同下的统一应用管理: 基于 OpenYurt 和 KubeVela 的解决方案

作者:乔中沛(伊灵) 背景 随着万物互联场景的逐渐普及,边缘设备的算力也不断增强,如何借助云计算的优势满足复杂多样化的边缘应用场景,让云原生技术延伸到端和边缘成为了新的技术挑战,“云边协…

RNA-seq 详细教程:样本质控(6)

学习目标 了解计数数据变换方法的重要性了解 PCA (principal component analysis)了解如何使用 PCA 和层次聚类评估样本质量1. 质控 DESeq2 工作流程的下一步是 QC,其中包括样本和基因程度上,以对计数数据执行 QC 检查,以帮助我们确保样本或重…

[附源码]Python计算机毕业设计Django右脑开发教育课程管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

iOS现有APP上架流程​

一. 登录App Store Connect​ 1.登录App Store Connect(apple.com)账号密码登录​ 2.点击“我的App”-->”选中升级的APP”-->创建新的APP版本号​ 输入版本的升级内容--》然后点击右上角的“存储”按钮,保存本次修改。​ 上传更新App Store安装包​ Xcode-…

【Rust日报】2022-12-07 测量 Rust 中 HashMap 的开销

测量 Rust 中 HashMap 的开销在处理将大量数据放入 HashMap的项目时,作者开始注意到 HashMap 占用了大量内存并对最小内存使用量进行了粗略计算,得到的常驻内存是预期的两倍多。我们都知道 HashMaps 以空间换取时间。通过使用更多空间,我们能…

Apache HTTP 两个路径穿越漏洞复现

目录 Apache HTTP Server 2.4.49 路径穿越漏洞(CVE-2021-41773) 漏洞环境: 漏洞复现: 漏洞复现成功! Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013) 漏洞复现分析: 漏…

React - Hooks 使用(函数组件中使用 React 特性)

React - Hooks 使用(函数组件中使用 React 特性)一. 为什么要使用 HOOKS?二. HOOKS 概念三. HOOKS 用法1. useState1.1 参数及返回值1.2 setState 两种写法1.3 setState 示例2. useEffect2.1 useEffect 实例3. useRef3.1 useRef 实例四. 一个…

R语言中的偏最小二乘回归PLS-DA

主成分回归(PCR)的方法 本质上是使用第一个方法的普通最小二乘(OLS)拟合来自预测变量的主成分(PC)。这带来许多优点: 预测变量的数量实际上没有限制。 相关的预测变量不会破坏回归拟合。 但是…

Letbook Cookbook题单——数组4

Letbook Cookbook题单——数组4 59. 螺旋矩阵 II 难度中等 给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: [外链图片转存失败,源站可能有防盗链机制,建议将图片保…

毕业设计-基于大数据的PM2.5浓度预测的研究-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

Excel 函数大全之TRANSPOSE function

TRANSPOSE function 有时您需要切换或旋转单元格。您可以通过复制、粘贴和使用转置选项来完成此操作。但是这样做会产生重复的数据。如果您不想这样,您可以使用 TRANSPOSE 函数键入公式。例如,在下图中,公式=TRANSPOSE(A1:B4)将单元格 A1 到 B4 水平排列。 注意: 如果您有…

Docker基本命令

目录一、Docker基本命令二、Docker镜像常用命令三、Docker 容器常用命令一、Docker基本命令 启动Docker systemctl start docker 停止Docker systemctl stop docker 重启Docker systemctl restart docker 开机启动Docker systemctl enable docker 查看Docker概要信息 dock…

通过动态图形感受数学之美

这两天正在使用PTC Mathcad 软件,它可以通过公式绘制出对应的曲线,通过曲线更容易的去理解公式中各种参数的含义。 下面先看几个例子 可以看到这个软件的函数和绘图功能是非常好用的,唯一的缺点就是:当参数范围比较宽的时候&#…

python+django企业员工人事档案管理系统arlys

系统主要分为两种角色,每个角色的功能如下所示: 管理员功能模块: 1.员工资料管理:查看员工列表,添加职工,修改信息(搜索员工使用模糊查询) 2.部门管理:查看部门列表&am…

vue.js:全局组件和局部组件

全局组件和局部组件 全局组件的定义的代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"author" content"xiaonaihu" /><meta name"generator" content"HBuilder X" …

知识图谱-KGE-语义匹配-双线性模型-2016:HolE

【paper】 Holographic Embeddings of Knowledge Graphs【简介】 本文是麻省理工的研究人员发表在 AAAI 2016 上的文章&#xff0c;提出了 HolE(Holographic Embedding)&#xff0c;是一个基于向量循环关联操作的组合向量空间模型。 组合表示 不同论文里对同一类方法的表述不…

第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模)

第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模) 目录 第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模) 四则运算 基础运算&#xff1a; 符号优先级 计算示例&#xff1a; 异常处理 取模运算% 基础概念 奇偶数 四则运算 大家都知道&…

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取联系&#x1f345;精彩专栏推荐订阅收藏&#x1f447;&…

2023年网络安全预测

©网络研究院 就在一年前&#xff0c;对 2022 年的预测将勒索软件的扩散以及混合环境中远程工作的新方式所产生的漏洞视为对企业的致命威胁。在冠状病毒引起的动荡之后&#xff0c;更多组织正在协商将其网络基础设施迁移到云端的挑战。 另一个始终如一的主题是长期缺乏由…

node版本控制工具(nvm)

1.传统的node控制版本,需要去官网手动下载并安装;使用nvm可以快速的切换node版本,提高摸鱼时间哦~ 2.下载nvm(地址) 3.再d盘soft(这是我专门存放软件的文件夹,大家可以直接在d盘下建nvm哈)文件夹下新建nvm文件夹,将下载的压缩文件解压到该文件夹下 解压后nvm文件夹下就只有nvm…