大家好,我是欧K~
本期主要利用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) )
大功告成!!!
END
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道