Matplotlib | 世界足球俱乐部排名可视化

news2024/12/22 18:04:28

文章目录

  • 🏳️‍🌈 1. 导入模块
  • 🏳️‍🌈 2. 示例数据
  • 🏳️‍🌈 3. 画布设置
  • 🏳️‍🌈 4. 画布区域主题分配
  • 🏳️‍🌈 5. 添加数据散点
  • 🏳️‍🌈 6. 添加表头
  • 🏳️‍🌈 7. 添加数据
  • 🏳️‍🌈 8. 设置colarbar
  • 🏳️‍🌈 9. 添加俱乐部flag
  • 🏳️‍🌈 10. 添加其他数据
  • 🏳️‍🌈 11. 添加标题、注释
  • 🏳️‍🌈 12. 在线运行地址
  • 推荐阅读

大家好,我是 👉【Python当打之年(点击跳转)】

本期我们参考FiveThirtyEight发布的世界足球俱乐部排名,利用Matplotlib手把手教大家如何制作新闻级别可视化作品 ,希望对小伙伴们有所帮助,如有疑问或者需要改进的地方可以私信小编。

先看看效果:
在这里插入图片描述

🏳️‍🌈 1. 导入模块

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.image as mpimg
from matplotlib.offsetbox import OffsetImage, AnnotationBbox

🏳️‍🌈 2. 示例数据

dic_t = {'Premier League':'England','Bundesliga':'Germany','Ligue 1':'France', 'La Liga':'Spain',
         'Eredivisie':'Netherlands','Serie A':'Italy', 'Primeira Liga':'Portugal','Bundesliga_1':'Austria'}
team = ['Man.City', 'Liverpool', 'Bayern Munich', 'Chelsea', 'PSG',
        'Real Madrid', 'Ajax', 'Barcelona', 'Tottnham', 'Inter Milan',
        'RB Leipzig', 'Porto', 'RB Salzburg', 'Dortmund', 'Atlético Madrid',
        'Arsenal', 'Villarreal', 'Brighton', 'AC Milan', 'Sporting'][::-1]
league = ['Premier League', 'Premier League', 'Bundesliga', 'Premier League', 'Ligue 1',
          'La Liga', 'Eredivisie', 'La Liga', 'Premier League', 'Serie A',
          'Bundesliga', 'Primeira Liga', 'Bundesliga_1', 'Bundesliga', 'La Liga',
          'Premier League', 'La Liga', 'Premier League', 'Serie A', 'Primeira Liga'][::-1]
league_country = [dic_t[i] for i in league]
rank = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][::-1]
OFF = [3.3,2.9,3.4,2.4,2.8,2.7,3.0,2.4,2.5,2.5, 2.5,2.3,2.5,2.6,2.0,2.2,2.3,2.1,2.1,2.2][::-1]
DEF = [0.3,0.2,0.6,0.3,0.7,0.6,0.9,0.5,0.6,0.7, 0.3,0.2,0.6,0.3,0.7,0.6,0.9,0.5,0.6,0.7][::-1]
SPI = [93.5,93.3,91.6,88.4,85.0,85.5,84.6,84.3,84.1,82.1, 81.8,81.6,81.5,81.1,80.4,80.2,80.1,80.0,80.0,79.8][::-1]

🏳️‍🌈 3. 画布设置

fig, ax = plt.subplots(1, 1, dpi=300)
# 隐藏y轴
ax.get_yaxis().set_visible(False)
ax.get_xaxis().set_visible(False)
# 将刻度小横线设置为白色,标签颜色为黑色
plt.tick_params(axis='x', color='w')
# x,y轴刻度范围
ax.set_xlim(0, 2)
# ax.set_xticks(range(0, 10, 1))
ax.set_ylim(0, 4)

🏳️‍🌈 4. 画布区域主题分配

# 设置上下左右外框变为透明
for i in ['top', 'right', 'left', 'bottom']:
    ax.spines[i].set_visible(False)
title_size = 3.2
title_pos = 40
ax.axhline(y=title_pos, xmax=.8, c='black', lw=0.4)
ax.axvline(x=.7, ymin=0.002, ymax=.909, c='black', lw=0.4)
ax.axvline(x=3.95, ymin=0.002, ymax=.909, c='black', lw=0.4)
ax.axhline(y=0.1, xmax=.8, c='black', lw=0.4)

在这里插入图片描述

🏳️‍🌈 5. 添加数据散点

x1 = [4.1] * len(rank)
y1 = [1 + i * 2 for i in range(len(rank))]
ax.scatter(x1, y1, s=40,alpha=0.8)

在这里插入图片描述

🏳️‍🌈 6. 添加表头

ax.text(0.08, 0.2 + title_pos, 'RANK', fontdict={'color': '#1C1C1C', 'size': title_size}, fontweight='bold')
ax.text(0.39, 0.2 + title_pos, '1-WEEK\nCHANGE', fontdict={'color': '#1C1C1C', 'size': title_size}, fontweight='heavy')
ax.text(0.75, 0.2 + title_pos, 'TEAM', fontdict={'color': '#1C1C1C', 'size': title_size}, fontweight='heavy')

在这里插入图片描述

🏳️‍🌈 7. 添加数据

for i in range(len(rank)):
    ax.axhline(y=0.1 + i * 2, xmax=.8, c='gray', lw=0.4, alpha=0.2)
    ax.text(0.13, 0.78 + i * 2, str(rank[i]), fontdict={'color': '#1C1C1C', 'size': 4}, fontweight='normal')
    ax.text(.75, 0.78 + i * 2, str(team[i]), fontdict={'color': '#1C1C1C', 'size': 4}, fontweight='heavy')
    ax.text(4.05, 0.75 + i * 2, str(OFF[i]), fontdict={'color': '#1C1C1C', 'size': 3.6}, fontweight='normal')

在这里插入图片描述

🏳️‍🌈 8. 设置colarbar

x1 = [4.1] * len(rank)
y1 = [1 + i * 2 for i in range(len(rank))]
ax.scatter(x1, y1, c=OFF, s=40, cmap='Greens', alpha=0.8)

在这里插入图片描述

🏳️‍🌈 9. 添加俱乐部flag

在这里插入图片描述

🏳️‍🌈 10. 添加其他数据

在这里插入图片描述

🏳️‍🌈 11. 添加标题、注释

在这里插入图片描述

🏳️‍🌈 12. 在线运行地址

在线运行地址(含全部代码):
https://www.heywhale.com/mw/project/6358ffe4d9319f9326104897


文章首发:微信公众号 Python当打之年,Python编程技巧推送,希望大家可以喜欢。

以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

推荐阅读

  • 【Matplotlib | 世界足球俱乐部排名可视化】
  • 🏭 【Pandas+Pyecharts | 2022年世界500强数据分析可视化】
  • 📲 【Pandas+Pyecharts | 快手APP大学生用户数据分析可视化】
  • 🥤 【Pandas+Pyecharts | 上海市餐饮数据分析可视化】
  • 👨‍🎓 【Pandas+Pyecharts | 山东省高考考生数据分析可视化】
  • 🚗 【Pandas+Pyecharts | 40000+汽车之家数据分析可视化】
  • 🛒 【Pandas+Pyecharts | 20000+天猫订单数据可视化】
  • 🏠 【Pandas+Pyecharts | 广州市已成交房源信息数据可视化】
  • 🏫 【Pandas+Pyecharts | 考研信息数据可视化】
  • 💸 【Pandas+Pyecharts | 某平台招聘信息数据可视化】
  • 🏥 【Pandas+Pyecharts | 医院药品销售数据可视化】
  • 💰️ 【Pyecharts | 比特币每日价格动态可视化】
  • 🥮 【可视化 | Python中秋月饼销量分析,这些口味才是yyds!】
  • 🎦 【Pyecharts | 《白蛇2:青蛇劫起》20000+数据分析可视化】
  • 💑 【Pyecharts | 历年全国各地民政局登记数据分析+可视化】
  • 🌏 【Pandas+Pyecharts | 全国热门旅游景点数据分析+可视化】
  • 🏆 【Pandas+Pyecharts | 2020东京奥运会奖牌数据可视化】
  • 🏹 【Pandas常用基础操作指令汇总 】
  • 🎯 【pandas + pyecharts | ADX游戏广告投放渠道综合分析】
  • 🕔 【Schedule + Pyecharts | 时间序列图(动态轮播图)】
  • 🏠 【Pandas+Pyecharts | 北京某平台二手房数据分析+可视化】
  • 🏫 【Pandas+Pyecharts | 2021中国大学综合排名分析+可视化】
  • 🎦 【爬虫 | Python爬取豆瓣电影Top250 + 数据可视化】
  • 📡 【技巧 | Python创建自己的高匿代理IP池】

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

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

相关文章

Python学习六(进程)

1.简介 多进程在使用中是非常常见的,如果对多进程比较陌生,那可以换个说法,叫多任务。 那什么叫做多任务呢?顾名思义就是多个任务。比如我们使用电脑时,打开浏览器,是一个任务、打开视频,是一个…

MySQL是怎么保证数据不丢的

一.什么是两阶段提交 1.SQL语句(update user set name‘李四’ where id3)的执行流程是怎样的呢? 1.执行器先找引擎取 ID3这一行。ID 是主键,引擎直接用树搜索找到这一行。 2.如果 ID3 这一行所在的数据页本来就在内存中&#x…

【FLASH存储器系列二】非易失性存储器基本原理之EEPROM和FLASH

1 EEPROM 通过EPROM的原理分析我们知道,由于叠栅雪崩注入MOS晶体管(SAMOS)的结构特性(浮栅周围是二氧化硅的绝缘层),而且由于早期工艺的原因,这个二氧化硅层比较厚,势垒比较高&#…

HTTP协议

哈喽,友友你好呀~今天要给大家分享的是关于HTTP协议的相关知识点,这部分的知识在web开发中还是很重要的一部分知识,耐点心看完,肯定会有收获滴~~ 目录 1.什么是HTTP 2.HTTP协议工作过程 3.什么是抓包工具 4.HTTP协议格式 4.1 HTTP请求(Request) 4.2 HTTP响应(Response) …

基于javaweb的停车库管理系统(java+jsp+jquery+servlet+mysql)

基于javaweb的停车库管理系统(javajspjqueryservletmysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基…

补环境:vm2 transformer.js 源码分析

在补环境框架的文件夹里执行 vm2 文件能成功得到结果,但是将合并了环境和原 js 文件后的代码内容单独提取出来通过 vm2 调用却报错提示 SyntaxError: Use of internal vm2 state variable: 通过 transformer.js 源码,分析 VM2_INTERNAL_STATE…

【韩顺平老师讲MySQL】函数和多表查询

文章目录P33.数学函数P34.日期函数P37.加密函数P38.流程控制函数P39.查询增强P40.分页查询P41.分组查询P42.多子句查询P43.多表查询笛卡尔积(重难点)P44.多表查询P45.自连接P46.多行子查询P33.数学函数 # 绝对值 SELECT ABS(-12) FROM DUAL;# 十进制转为二进制 SELECT BIN(10) …

【offer拿到手软系列】面试小贴士

​ 学习好一门语言贵在坚持——初识JavaScript🏹💁‍♂️! 首先: 博主是👦一个帅气的boy,你可以叫我山鱼君 🖱 ⌨个人主页:山鱼菌的个人主页 💖💖如果对你有帮…

vmlogin多登防关联浏览器中配置Geolocation定位插件的使用教程

Geolocation 接口是一个用来获取设备地理位置的可编程的对象,它可以让Web内容访问到设备的地理位置,这将允许Web应用基于用户的地理位置提供定制的信息。说实话:其实Geolocation 就是用来获取到当前设备的经纬度(位置)…

Zookeeper ---- Zookeeper集群操作

Zookeeper ---- Zookeeper集群操作1. 集群操作1. 集群规划2. 选举机制(面试重点)3. ZK集群启动停止脚本2. 客户端命令操作1. 命令行语法2. znode节点数据信息3. 节点类型(持久/短暂/有序号/无序号)4. 监听器原理5. 节点删除与查看…

2022年NPDP新版教材知识集锦--【第三章节】(1)

【新产品开发概论】 产品创新是“风险与回报”的过程 随着新产品的累积成本增加,产品的不确定性降低。成功率在很大程度上取决于企业采用的新产品开发实践和流程的质量。 【决策基本框架】 ⚫识别问题或机会 ⚫收集信息(信息来源:内部、外部、内外部…

iOS开发之Undefined symbol:_OBJC_CLASS_$_****

更新了Xcode14.0.1以后,项目突然曝出了此问题Undefined symbol:_OBJC_CLASS_$_****,因此记录一下,解决此问题的步骤: 第一步:首先在Build Phases中找到 Compile Sources,查看是否有对应的***.m文件&#x…

查找算法【二叉查找树】 - 二叉查找树的插入

查找算法【二叉查找树】 - 二叉查找树的插入 因为二叉查找树的中序遍历存在有序性,所以首先要查找待插入关键字的插入位置,当查找不成功时,再将待插入关键字作为新的叶子节点成为最后一个查找节点的左孩子或右孩子。 【算法步骤】 ① 若二…

vim编辑器使用和vim一键配置

1.vim的三种模式 开始之前,先简单说,vim并不是只有这三种模式。总的来说vim大概有12种模式,不同的版本可能也有一些具体的区别。今天我们先介绍三种常用的模式。 先用一张图来大概介绍三种模式之间的转换 命令模式(Normal mod…

强化学习算法实践(一)——策略梯度算法

文章目录Reference1. REINFORCE1.1 Basic1.2 Code2. Improvement Tips2.1 Assign Suitable Credit2.2 Add a Baseline2.3 Advantage Function3. Actor-Critic(A2C)3.1 Basic3.2 Code策略梯度是一种基于策略的算法,相比于DQN一类的基于价值的算法,它会直接…

C语言分支与循环--循环篇(图片,动画演示),彻底搞定C语言循环

前言 👻作者:龟龟不断向前 👻简介:宁愿做一只不停跑的慢乌龟,也不想当一只三分钟热度的兔子。 👻专栏:C初阶知识点 👻工具分享: 刷题: 牛客网 leetcode笔记软…

jupyter怎么换环境?

1.为什么要换环境而不用使用默认环境? 在这之前我只知道,要pip安装很多环境包,来在程序中调用使用,但是在不同的项目中,环境总是相互矛盾,总会出现诸多版本问题。所以需要每个项目对应一个环境。conda默认…

2022第二届中国高校大数据竞赛A题(实时更新)

题目 制造业是国民经济的主体,近十年来,嫦娥探月、祝融探火、北斗组网,一大批重大标志性创新成果引领中国制造业不断攀上新高度。作为制造业的核心,机械设备在工业生产的各个环节都扮演着不可或缺的重要角色。但是,在…

【FTP工具】FileZila安装以及使用详解

一、FTP概念 安装FTP主要是为了传输文件,FTP是持久的,只有一次认证过程,传输多个文件都是使用同一个连接。因为FTP就是为远程文件交互而设计的,有些时候只是为了单纯做一个文件传输,往往搭建FTP服务更省时和节约成本。…

【每日刷题】之【Z字形变换】

✨✨hello,愿意点进来的小伙伴们,你们好呐! 🐻🐻系列专栏:【力扣刷题篇】 🐲🐲本篇内容: 每日刷题 🐯🐯作者简介:一名现大二的三非编程小白&#…