我对情节有点新手,我只是找不到解决我的问题的方法。我如何组合两个情节表达图(在我的情况下仅时间轴和散点标记),同时都使用具有相同分离规则的面行?希望有人以前做过并知道解决方案。 使用plotly和pandas。
我认为我使用了错误的代码结构,但我只是想看看有人对此的想法,然后调整我的脚本来适应它
import plotly.express as px
import pandas as pd
df=pd.DataFrame([
dict(team='Wolfs',start='2004-05-23',end='2006-05-24',country='Russia'),
dict(team='Lions',start='2007-07-05',end='2009-07-06',country='USA'),
dict(team='Crows',start='2001-08-9',end='2003-08-11',country='USA'),
dict(team='Elephants',start='2010-02-14',end='2012-02-15',country='China')
]) #team, country, date of start of team playing, end of team. Timeline chart
dm=pd.DataFrame([
dict(date='23.05.2004',team='Wolfs',country='Russia'),
dict(team='Lions',date='04.07.2007',country='USA'),
dict(team='Crows',date='09.08.2001',country='USA'),
dict(team='Elephants',date='14.02.2010',country='China')
]) #team, country, time of event and an name of event (for example - losing without scoring a point)
fig = px.timeline(df,x_start='start',x_end='end',y='team',facet_row='country')
fig2 = px.scatter(dm, x='date', y='team', facet_row='country')
fig.add_trace(fig2.data[0],row='all',col='all')
fig.show()
两个图无法成功合并的原因是第二个数据框的日期列没有被视为时间序列。此外,添加的图表Fig2.data[0]仅指定俄罗斯。 Fig2 由三个散点图组成,因此需要添加三个。关于图表的唯一调整是添加 color='country' ,以便散点图上的标记采用颜色编码。多面标签重叠,因此我们增加了间距和整体图表。
dm['date'] = pd.to_datetime(dm['date'], format='%d.%m.%Y')
fig = px.timeline(df,x_start='start',x_end='end',y='team',facet_row='country',facet_row_spacing=0.1)
fig2 = px.scatter(dm, x='date', y='team', color='country',facet_row='country')
fig.add_trace(fig2.data[0],row=3,col=1)
fig.add_trace(fig2.data[1],row=2,col=1)
fig.add_trace(fig2.data[2],row=1,col=1)
fig.update_layout(height=400)
fig.show()