文章目录
大家好,我是 👉 【Python当打之年(点击跳转)】
本期利用python教大家制作 2022卡塔尔世界杯32强身价排行榜图 ,希望对大家有所帮助,如有疑问或者需要改进的地方可以私信小编。
FIFA国家队排名前十:
1 - 巴西
2 - 比利时
3 - 阿根廷
4 - 法国
5 - 英格兰
6 - 意大利 (未进入正赛)
7 - 西班牙
8 - 荷兰
9 - 葡萄牙
10 - 丹麦
巴西 、 比利时 、阿根廷FIFA排名位居三甲,法国、英格兰紧随其后。
世界杯身价排名前十:
1 - 英格兰
2 - 巴西
3 - 法国
4 - 葡萄牙
5 - 西班牙
6 - 德国
7 - 阿根廷
8 - 荷兰
9 - 比利时
10 - 乌拉圭
英格兰、 巴西、法国以超过10亿欧元的身价排名前三位,葡萄牙、西班牙也以超过9亿欧元的身价排在第四、第五位。
🏳️🌈 1. 数据
以下面格式为例:
🏳️🌈 2. 绘图
2.1 绘制表头
ax.text(2.2, tit_pos, '排名', ha='center', va='bottom', fontsize=10, fontweight='heavy')
ax.text(7.7, tit_pos, '球队', ha='center', va='bottom', fontsize=10, fontweight='heavy')
ax.text(12.5, tit_pos, '身价(亿欧)', ha='center', va='bottom', fontsize=10, fontweight='heavy')
ax.text(27, tit_pos, 'FIFA国家队排名', ha='center', va='bottom', fontsize=9, fontweight='heavy')
2.2 绘制排名、球队以及国旗
for a, b in zip(y, x):
print(a,b)
path = f'./pic/{names[k]}.gif'
arr_img = mpimg.imread(path)
imagebox = OffsetImage(arr_img, zoom=0.26)
ab = AnnotationBbox(imagebox, [5, b], pad=0.02, frameon=False)
ax.add_artist(ab)
ax.text(a+12, b - 0.35, '%.2f' % a, ha='center', va='bottom', fontsize=9)
ax.text(27, b - 0.22, z[k], ha='center', va='bottom', fontsize=10, fontweight='heavy')
ax.text(2, b - 0.22, x[::-1][k], ha='left', va='bottom', fontsize=10)
ax.text(7, b - 0.22, names[k], ha='left', va='bottom', fontsize=10)
2.3 绘制身价柱状图
names = df['球队'].values.tolist()
x = df['排名'].values.tolist()[::-1]
y = df['身价(亿欧)'].values.tolist()
z = df['FIFA国家队排名'].values.tolist()
norm_values = norm(y)
map_vir = cm.get_cmap(name='Spectral')
colors = map_vir(norm_values)
labels = df['球队'].values.tolist()
ax.barh(x, y, left=11,tick_label=labels, height=0.5, color=colors[::-1])
2.4 绘制FIFA排名散点图
asc = sorted(z)
dd = [asc.index(i) for i in z]
ax.scatter([27]*32, x, s=[asc[31-i]*10 for i in dd], color=colors[::-1],alpha=0.4)
2.5 设置背景
ax.imshow(img,extent=[5, 25, 5, 30],alpha=0.2)
2.6 设置标题
ax.text(6.6, 37, '世界杯三十二强身价排行榜', fontdict={'color': '#880E4F', 'size': 20}, fontweight='heavy')
ax.text(10, 36, '(制图@公众号:Python当打之年)', fontsize = 9, fontweight='heavy',alpha=1, color = '#5D4037')
ax.text(6.6, 35, '*注:FIFA国家队排名前10中仅意大利(排名第6)未进入32强', fontsize = 9, fontweight='heavy',alpha=.9, color = '#662400')
完成效果如下图:
身价最高的一定最强吗?英格兰要夺冠啦?小伙伴们怎么看…
🏳️🌈 3. 更多可视化项目源码+数据:
网盘: https://pan.baidu.com/doc/share/Olj4d~aKuXT7AF0cq01MrQ-437060019167360
提取码: pyra
以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享(注明出处)让更多人知道。