Python | 今年世界杯哪个队最有可能夺冠?!

简介: Python | 今年世界杯哪个队最有可能夺冠?!

大家好,我是欧K~

卡塔尔世界杯八强已经产生:巴西、葡萄牙、摩洛哥、克罗地亚、法国、阿根廷、荷兰、英格兰,本期利用python分析一下知乎网友对各队的支持程度,看看大家觉得今年世界杯哪个队最有可能夺冠,希望对大家有所帮助。

  • 上半区:巴西、克罗地亚、阿根廷、荷兰
  • 下半区:葡萄牙、摩洛哥、法国、英格兰

早上发现西班牙居然被摩洛哥淘汰了(点球大战西班牙一球没进!)。。。

1. 数据

知乎话题:

数据获取部分大家可以参考之前的文章爬虫 | Python抓取知乎问题下所有回答(附完整代码),这里不再赘述。


2. 绘图

2.1 绘制南丁格尔玫瑰图

def get_pie(regions, region_count,size, colors): 
    num= len(size)
    width = 2 * np.pi / num
    rad = np.cumsum([width] * num)
    plt.figure(figsize=(8, 8),dpi=200)
    ax = plt.subplot(projection='polar')
    ax.set_ylim(-2, np.ceil(max(size) + 1))
    ax.set_theta_zero_location('N',-6.0)
    ax.set_theta_direction(1)
    ax.grid(False)
    ax.spines['polar'].set_visible(False)
    ax.set_yticks([])
    ax.set_thetagrids([])
    ax.bar(rad, size, width=width, alpha=1)


2.2 设置cloor_bar

可以自定义颜色:

colors = [(0.68359375, 0.02734375, 0.3203125),(0.78125, 0.05078125, 0.2578125),(0.875, 0.0390625, 0.1796875),(0.81640625, 0.06640625, 0.0625),
          (0.8515625, 0.1484375, 0.08203125),(0.90625, 0.203125, 0.13671875),(0.89453125, 0.2890625, 0.0703125),(0.84375, 0.2421875, 0.03125),
          (0.9140625, 0.26953125, 0.05078125),(0.85546875, 0.31640625, 0.125),(0.85546875, 0.3671875, 0.1171875),(0.94921875, 0.48046875, 0.28125),
          (0.9375, 0.51171875, 0.1484375), (0.93359375, 0.59765625, 0.0625),(0.93359375, 0.62890625, 0.14453125),(0.86328125, 0.5859375, 0.15234375),
          (0.86328125, 0.71875, 0.16015625), (0.86328125, 0.8203125, 0.16015625),(0.76171875, 0.8671875, 0.16015625),(0.53125, 0.85546875, 0.15625),
          (0.4765625, 0.94140625, 0.0703125), (0.21484375, 0.91015625, 0.0625),(0.15234375, 0.88671875, 0.08203125),(0.11328125, 0.87890625, 0.19921875),
          (0.11328125, 0.8125, 0.1796875), (0.1875, 0.76953125, 0.2109375),(0.2109375, 0.78125, 0.38671875),(0.1484375, 0.76953125, 0.30859375)
         ]

2.3 添加文字

font_dict = {'size':size[i]/2.5, 'color':'white','weight':'heavy','style':'normal'}
ax.text(rad[i], size[i]-1.2, f'{regions[i]}', rotation=rad[i] * 180 / np.pi -5,fontdict=font_dict,
        rotation_mode='anchor', ha="center", va="top" )
font_dict = {'family':'Times New Roman', 'size':size[i]/1.5, 'color':'white','weight':'heavy','style':'normal'}
ax.text(rad[i], size[i]-3.8+i*0.15, f'{region_count[i]}', rotation=rad[i] * 180 / np.pi -5,fontdict=font_dict,
        rotation_mode='anchor', ha="center", va="top" )


2.4 添加注释

axins1.text(x_pos, 0.96, '十六强', fontfamily='Microsoft YaHei', fontsize=6,color='#212121',fontweight='heavy',
                horizontalalignment='left',verticalalignment='center', bbox=bbox_props)
axins1.text(x_pos, 0.89, s16, fontsize=5,color=s_color,fontweight='heavy', horizontalalignment='left',verticalalignment='center')
axins1.text(x_pos, 0.81, '八强', fontsize=6,color='#212121',fontweight='heavy',
            horizontalalignment='left',verticalalignment='center', bbox=bbox_props)
axins1.text(x_pos, 0.765, s8, fontsize=5,color=s_color,fontweight='heavy', horizontalalignment='left',verticalalignment='center')
axins1.text(x_pos, 0.71, '预测四强', fontsize=6,color='#212121',fontweight='heavy',
        horizontalalignment='left',verticalalignment='center', bbox=bbox_props)
axins1.text(x_pos, 0.675, s4, fontsize=5,color=s_color,fontweight='heavy', horizontalalignment='left',verticalalignment='center')
axins1.text(x_pos, 0.63, '预测决赛圈', fontsize=6,color='#212121',fontweight='heavy',
    horizontalalignment='left',verticalalignment='center', bbox=bbox_props)
axins1.text(x_pos, 0.59, s2, fontsize=6,color=s_color,fontweight='heavy', horizontalalignment='left',verticalalignment='center')

2.5 添加标题

font_dict = {'family':'FZYaoti','weight':'heavy', 'size':12, 'color':'#880E4F','style':'normal'}
bbox_props = dict(boxstyle="round", fc="#EF6C00", ec="#EF6C00", alpha=0.6)
axins1.text(-0.4, 1.1, '卡塔尔世界杯哪个队最有可能夺冠', fontdict=font_dict,horizontalalignment='left',verticalalignment='center')
font_dict = {'family':'FZYaoti','size':6, 'color':'#3C3B6E','style':'normal'}
axins1.text(-0.27, 1.06, '数据来源:知乎 / 截止时间:2022/12/07 08:00:00',fontdict=font_dict,horizontalalignment='left',verticalalignment='center')

完成效果如下图:

2.6 词云

stylecloud.gen_stylecloud(
    text=ciyun_words,
    icon_name='fas fa-futbol',
    font_path=r'STXINWEI.TTF',
    palette='cartocolors.qualitative.Bold_5'
    background_color='black',
    max_font_size=100,
    max_words=2000,
    output_name=out_names
    )



更多可视化资源

网盘链接:https://pan.baidu.com/doc/share/Olj4d~aKuXT7AF0cq01MrQ-437060019167360 提取码: pyra

END


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

相关文章
|
9月前
|
Python
Python | 1930~2018年历届世界杯冠军
Python | 1930~2018年历届世界杯冠军
|
9月前
|
数据可视化 Python
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
技巧 | Python绘制2022年卡塔尔世界杯决赛圈预测图
|
9月前
|
Python
Python预测卡塔尔世界杯身价最高的英格兰要夺冠?!
Python预测卡塔尔世界杯身价最高的英格兰要夺冠?!
世界杯期间我使用Python生成二维码“为中国队辟谣”
世界杯期间我使用Python生成二维码“为中国队辟谣”
世界杯期间我使用Python生成二维码“为中国队辟谣”
|
数据可视化 Python
【世界杯限定】致敬梅西,用Python刻画足球场上的战神
最近卡塔尔世界杯正在火热的进行着,相信球迷们一定不会错过每一场精彩的比赛吧,在看球的同时,小伙伴们不要忘记自己的学习与工作哦,本人纯属路人,虽然不是很懂球,但是很喜欢梅西,所以我开始关注梅西,并用Python将梅西的生涯数据进行了简单的可视化,感兴趣的小伙伴可以了解一下哦,这样就可以将你喜欢的球星生涯数据进行可视化喽~
305 0
【世界杯限定】致敬梅西,用Python刻画足球场上的战神
|
JSON 文字识别 API
这些世界杯球星你真的认识吗?不如通过Python来认识一下吧
最近大家都在追看世界杯,博主也是一样,偶尔也贪黑看球,虽然踢得不怎么样,但是热情却很高。依稀记得小学的时候为了攒球星卡吃了无数袋的干脆面,什么巴西罗纳尔多,法国齐达内,各种球星,当然也都是因为热爱足球才含着泪吃进去的。
这些世界杯球星你真的认识吗?不如通过Python来认识一下吧
|
数据采集 JSON 数据格式
世界杯快到了,看我用Python爬虫实现(伪)球迷速成!
还有4天就世界杯了,作为一个资深(伪)球迷,必须要实时关注世界杯相关新闻,了解各个球队动态,这样才能在一堆球迷中如(大)鱼(吹)得(特)水(吹),迎接大家仰慕的目光! 给大家分享一个快速了解相关信息的办法:刷论坛!我们来...
1144 0
|
1天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
3天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
8 1