Problem mit Plotly-Plots auf mehreren Panel-Registerkarten
Posted: 14 Jan 2025, 13:40
Ich habe eine Panel-Anwendung, die drei verschiedene Plotly-Diagramme auf verschiedenen Registerkarten anzeigt. Sie werden zunächst gut angezeigt, aber wenn sie aktualisiert werden, sind eine oder mehrere Registerkarten leer. Hier ist ein Beispiel, das es veranschaulicht. Auf den drei Registerkarten werden zunächst Diagramme angezeigt. Wenn jedoch die Schaltfläche „Los“ gedrückt wird, sind eine oder mehrere Registerkarten leer. Mache ich etwas falsch? (Der Code wurde auf einer Maschine ohne Python neu eingegeben, daher gibt es hoffentlich keine Tippfehler.)
Code: Select all
# -*- coding: utf-8 -*-
import pandas as pd
import panel as pn
import plotly.express as px
import plotly.graph_objects as go
import random
raw_data_viewer_tab = pn.Row()
histogram_tab = pn.Row()
cluster_plot_tab = pn.Row()
data = list()
for i in range(1000):
num = random.random()
data.append([i, i*num, i+num, i-num, i/num])
df = pd.DataFrame(data, columns=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])
raw_data_viewer_tab.append(pn.pane.Plotly(px.scatter(df, x=‘a’, y=‘b’, color=‘c’)))
fig_col = pn.Column()
for col in df.columns:
fig_col.append(go.Figure([go.Historgram(x=df[col])]))
histogram_tab.append(fig_col)
cluster_plot_tab.append(go.Figure(([go.Scatter3d(x=df[‘a’], y=df[‘b’], z=df[‘c’], mode=‘markers’)]))
tabs = pn.Tabs((‘Raw Data Viewer’, raw_data_viewer_tab), (‘Cluster Data Histograms’, histogram_tab), (‘Cluster Plot’, cluster_plot_tab))
top_accordion = pn.Accordion()
template = pn.template.BootstrapTemplate(title=‘title’, sidebar=[top_accordion])
def update_plots(event):
cluster_plot_tab[0] = pn.pane.Plotly(go.Figure([go.Scatter3d(x=df[‘a’], y=df[‘b’], z=df[‘c’], mode=‘markers’)]))
raw_data_viewer_tab[0] = pn.pane.Plotly(px.scatter(df, x=‘a’, y=‘b’, color=‘c’))
fig_col[0] = go.Figure([go.Histogram(x=df[col])])
update_button = pn.widgets.Button(name=‘go’)
template.sidebar.append(update_button)
update_button.param.watch(update_plots, ‘value’)
template.show()