Python | 1930~2018年历届世界杯冠军

简介: Python | 1930~2018年历届世界杯冠军

大家好,我是欧K~

卡塔尔世界杯小组赛过半,本期利用python教大家制作 1930~2018年历届世界杯冠军图 ,希望对大家有所帮助。
世界杯每4年举办一次,冠军归属:

  • 巴西最多,共获得5次世界杯冠军:1958年瑞典世界杯、1962年智利世界杯、1970墨西哥世界杯、1994年美国世界杯、2002年韩日世界杯
  • 意大利,共获得4次世界杯冠军1934年意大利世界杯、1938年法国世界杯、1982年西班牙世界杯、2006年德国世界杯
  • 德国,共获得4次世界杯冠军:1954年瑞士世界杯、1974年联邦德国世界杯、1990年意大利世界杯、2014巴西世界杯
  • 乌拉圭,共获得2次世界杯冠军:1930年乌拉圭世界杯、1950年巴西世界杯
  • 阿根廷,共获得2次世界杯冠军1978年阿根廷世界杯、1986年墨西哥世界杯
  • 英格兰,共获得1次世界杯冠军1966年英格兰世界杯
  • 法国,共获得1次世界杯冠军1998年法国世界杯

先看看效果:


1. 数据

以下面格式为例:


2. 绘图

2.1 设置坐标范围

fig, ax = plt.subplots(1, 1,dpi=100)
ax.set_xlim(-1, 24)
ax.set_ylim(-6, 6)
y_min,y_max = ax.get_ylim()

2.2 设置刻度、移动x轴

ax.get_yaxis().set_visible(False)
ax.get_xaxis().set_visible(False)
ax.xaxis.set_ticks_position('center')
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.spines['bottom'].set_position(('data', 0))

2.3 绘制世界杯flag

arr_img = mpimg.imread('世界杯.png')
imagebox = OffsetImage(arr_img, zoom=0.1)
ab = AnnotationBbox(imagebox, [0.5, 5], pad=0.02, frameon=False, alpha=0.1)
ax.add_artist(ab)

2.4 绘制散点图

for i in range(len(years)):
    x_pos = i+1
    x_tans = 0.2
    size_t = champions.count(champions[i])*180
    if i%2 == 0:
        y_data.append(4*0.4)
        ax.scatter(x_pos, y_max*0.4, s=size_t, color=dic_color[champions[i]],marker='o')
        ax.text(x_pos, y_max*0.4-0.2, f'{champions.count(champions[i])}', ha='center', va='bottom', fontsize=16, color='white',fontweight='heavy') #rotation
        ax.axvline(x=x_pos, ymin=0.525, ymax=.7, c=dic_color[champions[i]], lw=2,ls='--')
        ax.text(x_pos, -0.65, f'{years[i]}年', ha='center', va='bottom', fontsize=14, color='black')
        ax.text(x_pos, -1, f'({countries[i]})', ha='center', va='bottom', fontsize=12, color='black')
        ax.text(x_pos, y_max*0.4+0.5, f'{champions[i]}', ha='center', va='bottom', fontsize=18, color=dic_color[champions[i]], fontweight='heavy')
    else:
        y_data.append(-4*0.4)
        ax.scatter(x_pos, -y_max*0.4, s=size_t, color=dic_color[champions[i]],marker='o')
        ax.text(x_pos, -y_max*0.4-0.2, f'{champions.count(champions[i])}', ha='center', va='bottom', fontsize=16, color='white',fontweight='heavy')
        ax.axvline(x=x_pos, ymin=0.3, ymax=.477, c=dic_color[champions[i]], lw=2,ls='--')
        ax.text(x_pos, 0.33, f'{years[i]}年', ha='center', va='bottom', fontsize=14, color='black')
        ax.text(x_pos, 0.73, f'({countries[i]})', ha='center', va='bottom', fontsize=12, color='black')
        ax.text(x_pos, -y_max*0.4-0.93, f'{champions[i]}', ha='center', va='bottom', fontsize=18, color=dic_color[champions[i]

2.5 隐藏边线

for i in ['top', 'right', 'left', 'bottom']:
    ax.spines[i].set_visible(False)

2.6 设置标题

ax.text(5.25, 4.8, '1930~2018年历届世界杯冠军', fontdict={'color': '#FFB300', 'size': 36}, fontweight='heavy')
ax.text(8.9, 4.3, '(制图@公众号:Python当打之年)', fontsize = 12, fontweight='heavy',alpha=1, color = '#FAFAFA'

完成效果如下图

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
Java 机器人 数据安全/隐私保护
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)(C++语言)(Python)
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)(C++语言)(Python)
254 0
|
8月前
|
数据可视化 Python
Python高考 | matplotlib绘制1977-2022年历届高考人数及录取率分布图
Python高考 | matplotlib绘制1977-2022年历届高考人数及录取率分布图
|
8月前
|
数据采集 数据可视化 Python
Python | 今年世界杯哪个队最有可能夺冠?!
Python | 今年世界杯哪个队最有可能夺冠?!
|
8月前
|
数据可视化 Python
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
|
8月前
|
Python
Python预测卡塔尔世界杯身价最高的英格兰要夺冠?!
Python预测卡塔尔世界杯身价最高的英格兰要夺冠?!
世界杯期间我使用Python生成二维码“为中国队辟谣”
世界杯期间我使用Python生成二维码“为中国队辟谣”
世界杯期间我使用Python生成二维码“为中国队辟谣”
|
数据可视化 Python
【世界杯限定】致敬梅西,用Python刻画足球场上的战神
最近卡塔尔世界杯正在火热的进行着,相信球迷们一定不会错过每一场精彩的比赛吧,在看球的同时,小伙伴们不要忘记自己的学习与工作哦,本人纯属路人,虽然不是很懂球,但是很喜欢梅西,所以我开始关注梅西,并用Python将梅西的生涯数据进行了简单的可视化,感兴趣的小伙伴可以了解一下哦,这样就可以将你喜欢的球星生涯数据进行可视化喽~
296 0
【世界杯限定】致敬梅西,用Python刻画足球场上的战神
|
大数据 Python
Python蓝桥杯 复盘历届难题 备战
Python蓝桥杯 复盘历届难题 备战
100 0
Python蓝桥杯 复盘历届难题 备战
|
Java C++ Python
历届真题 小朋友崇拜圈【第九届】【省赛】【C组】——【C++】【C】【Java】【Python】四种语言解法
历届真题 小朋友崇拜圈【第九届】【省赛】【C组】——【C++】【C】【Java】【Python】四种语言解法
128 0
历届真题 小朋友崇拜圈【第九届】【省赛】【C组】——【C++】【C】【Java】【Python】四种语言解法