in polymetis/python/scripts/viz.py [0:0]
def initialize_graphs(viz, height=1000):
while viz.state_queue.empty():
print("Waiting for states...")
time.sleep(1)
dataframes = viz.process_queue()
num_dataframes = len(dataframes)
max_columns = max([len(df.columns) for df in dataframes.values()])
# Generate subplot titles
subplot_titles = []
row = 1
for df_name, df in dataframes.items():
col = 1
for column in df.columns:
subplot_titles.append(f"{df_name}: {column}")
col += 1
for i in range(col, max_columns + 1):
subplot_titles.append("")
row += 1
fig = plotly.subplots.make_subplots(
rows=num_dataframes, cols=max_columns, subplot_titles=subplot_titles
)
fig.update_layout(height=height, showlegend=False)
# Add graph objects
row = 1
for df_name, df in dataframes.items():
datetimes = [x.strftime("%H:%M:%S") for x in df.index]
col = 1
for column in df.columns:
fig.append_trace(
plotly.graph_objects.Scatter(
x=datetimes, y=df[column], line=dict(color="black")
),
row=row,
col=col,
)
col += 1
row += 1
return fig