优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python教你绘制卡塔尔世界杯赛事时间线图

nanyue 2024-10-31 13:49:58 技术文章 4 ℃

大家好,我是【Python当打之年

本期主要利用pyecharts教大家制作 2022卡塔尔世界杯小组赛赛事时间线图 ,希望对大家有所帮助。

先看看效果:


1. 数据

以下面格式为例,读取数据:

df_t = pd.read_table('data.txt',sep=' ')

2. Pyecharts绘图

2.1 导入绘图模块

from pyecharts.charts import *
from pyecharts import options as opts

2.2 数据处理

法国、英格兰、德国、西班牙、巴西、阿根廷格式用到rich 富文本设置方式:

for idx, row in df_t.iterrows():
    msg = '{c|%s %s}\n{a|%s}\n{b|%s}' % (row['日期'],row['时间'], row['双方'], row['球场'])     
    l_item = opts.LineItem(
        name=10,
        value=counter,
        symbol='emptyCircle',
        symbol_size=10,
        label_opts=opts.LabelOpts(
            is_show=True,
            font_size=16,
            font_family='STXingkai',
            position=position[counter%2],
            formatter=msg,
            rich = {
                'a': {
                    'fontSize': 18,
                    'color': colors_t[0],
                    'fontWeight':'bold',
                    'align':position[(counter+1)%2],
                    },
                'b': {
                    'fontSize': 15,
                    'color':colors_t[2],
                    'align':position[(counter+1)%2]},
                'c': {
                    'fontSize': 15,
                    'color': colors_t[1],
                    'fontWeight':'bold',
                    'align':position[(counter+1)%2]}                
            }
            )
    )
)

2.3 绘制直线图

line = (
    Line(init_opts=opts.InitOpts(theme='light',width='800px',height='2800px',bg_color='white'))
    .add_xaxis([''])
    .add_yaxis(
        '',
        y_data[::-1],
        tooltip_opts=opts.TooltipOpts(is_show=False)
    )

    .set_global_opts(
        xaxis_opts=opts.AxisOpts(is_show=False, type_='category'),
        yaxis_opts=opts.AxisOpts(is_show=False, type_='category', max_=len(y_data)),
    )
)

2.4 设置线型

linestyle_opts={
    'normal': {
        'width': 4, # 设置线宽
        'color':'#1A237E',
        'shadowColor': 'rgba(155, 18, 184, .3)', # 阴影颜色
        'shadowBlur': 10, # 阴影大小
        'shadowOffsetY': 10, # Y轴方向阴影偏移
        'shadowOffsetX': 10, # x轴方向阴影偏移
    }
},
itemstyle_opts={
    'normal': {
        'color':'red',
        'shadowColor': 'rgba(155, 18, 184, .3)', # 阴影颜色
        'shadowBlur': 10, # 阴影大小
        'shadowOffsetY': 10, # Y轴方向阴影偏移
        'shadowOffsetX': 10, # x轴方向阴影偏移
    }
}

2.5 设置背景

graphic_opts=[
    opts.GraphicGroup(
        graphic_item=opts.GraphicItem(id_='1',left="center", top="center", z=-1),
        children=[
            opts.GraphicImage(graphic_item=opts.GraphicItem(id_="logo",left='center',z=-1),
              graphic_imagestyle_opts=opts.GraphicImageStyleOpts(
                image='https://search-operate.cdn.bcebos.com/e7c2273cc53746916aa6f9fd9b81d262.png',
                width=600,
                height=800,
                opacity=0.2,)
                )
            ]
        )
]

2.6 设置标题

title_opts=opts.TitleOpts(
    title='2022卡塔尔世界杯--小组赛',
    subtitle='(制图@微信公众号:Python当打之年)',
    pos_left='center', pos_top='1%',
    title_textstyle_opts=opts.TextStyleOpts(color='#880E4F', font_size=28),
    subtitle_textstyle_opts=opts.TextStyleOpts(color='#263238', font_size=14)
)

大功告成!!!

3. 更多内容

《可视化图鉴》源码:

https://www.heywhale.com/home/column/60e2740e3aeb9c0017b967a2

END

以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、转发,也可以在评论区留言相互交流。文章首发公众号 “Python当打之年” ,每天都有python编程技巧推送,希望大家可以喜欢。

Tags:

最近发表
标签列表