将数据添加到带有子图的迹线中,在破折号中为每个子图维护数据拆分
Adding data to traces with suplots mantaining data split for each subplot in dash
我有虚拟数据框:
import pandas as pd
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
我想为 B 列(Tita 和 Burru)中的每个值创建一个子图。
这段代码产生了预期的输出:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == 'Tita', 'A'], y=df.loc[df['B'] == 'Tita', 'Z']),
row=1, col=1
)
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == 'Burru', 'A'], y=df.loc[df['B'] == 'Burru', 'Z']),
row=1, col=2
)
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
但我想让它自动为 B 列中的 n 个可能值设置,如下所示:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
for sist in lista_syst:
print(sist)
print(df.loc[df['B'] == sist, 'A'])
for i in range(1,3):
fig.add_trace(
go.Scatter(y=df.loc[df['B'] == sist, 'A'],x=df.loc[df['B'] == sist, 'Z']),
row=1,col=i
)
最后一个代码,returns 两个具有所有值的重复图形(B 中两个值的相同图形两次),怎么回事?
是否可以做我想做的事?
您在找这样的东西吗?
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
for sist in lista_syst:
print(sist)
print(df.loc[df['B'] == sist, 'A'])
fig.add_trace(
go.Scatter(
x=df.loc[df['B'] == sist, 'Z'],
y=df.loc[df['B'] == sist, 'A']))
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
这给你:
评论后编辑:
如果您希望单独的图表彼此相邻,则可以执行以下操作:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
i=0
for sist in lista_syst:
i=i+1
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == sist, 'A'],y=df.loc[df['B'] == sist, 'Z']),
row=1,col=i
)
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
这给你:
我有虚拟数据框:
import pandas as pd
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
我想为 B 列(Tita 和 Burru)中的每个值创建一个子图。
这段代码产生了预期的输出:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == 'Tita', 'A'], y=df.loc[df['B'] == 'Tita', 'Z']),
row=1, col=1
)
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == 'Burru', 'A'], y=df.loc[df['B'] == 'Burru', 'Z']),
row=1, col=2
)
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
但我想让它自动为 B 列中的 n 个可能值设置,如下所示:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
for sist in lista_syst:
print(sist)
print(df.loc[df['B'] == sist, 'A'])
for i in range(1,3):
fig.add_trace(
go.Scatter(y=df.loc[df['B'] == sist, 'A'],x=df.loc[df['B'] == sist, 'Z']),
row=1,col=i
)
最后一个代码,returns 两个具有所有值的重复图形(B 中两个值的相同图形两次),怎么回事?
是否可以做我想做的事?
您在找这样的东西吗?
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
for sist in lista_syst:
print(sist)
print(df.loc[df['B'] == sist, 'A'])
fig.add_trace(
go.Scatter(
x=df.loc[df['B'] == sist, 'Z'],
y=df.loc[df['B'] == sist, 'A']))
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
这给你:
评论后编辑:
如果您希望单独的图表彼此相邻,则可以执行以下操作:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
df=pd.DataFrame({'A':[1,2,3,20,30,40],'B':['Tita','Tita','Tita','Burru','Burru','Burru'],'Z':[1,2,3,1,2,3]})
fig = make_subplots(rows=1, cols=2)
lista_syst=df.B.unique()
i=0
for sist in lista_syst:
i=i+1
fig.add_trace(
go.Scatter(x=df.loc[df['B'] == sist, 'A'],y=df.loc[df['B'] == sist, 'Z']),
row=1,col=i
)
fig.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
这给你: