Sankey is not updated on callback
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 18.8k
- Forks
- 2.8k
- Ø Merge
- 16 Std. 26 Min.
- Gemergte PRs (30 T.)
- 21
Beschreibung
Python 3.8.5; Plotly 4.14.1; Dash 1.19.0
Plotly’s Sankey is not updated with new data on callbacks. A Sunburst plot based on the same data works correctly, as you can see in this example.
value data are changed and passed to JS correctly:
import plotly.graph_objs as go
import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Output, Input
import random
app = dash.Dash(__name__)
app.layout = html.Div(
[
html.Button('Change values',
id='btn_change',
n_clicks=0),
dcc.Graph(
id="fig_sunburst",
figure=go.Figure(),
animate=True,
),
dcc.Graph(
id="fig_sankey",
figure=go.Figure(),
animate=True,
),
dcc.Interval(
id=f"update",
interval=2000,
n_intervals=0
),
],
)
@app.callback(
Output('fig_sunburst', 'figure'),
Output('fig_sankey', 'figure'),
Input('btn_change', 'n_clicks')
)
def traces_update(n_clicks):
print(f"update {n_clicks}")
# random data
a1 = random.randint(10, 100)
a2 = random.randint(10, 100)
a3 = random.randint(10 ,100)
a0 = a1+a2+a3
b1 = random.randint(10, 100)
b2 = random.randint(10, 100)
b0 = b1+b2
tot = a0+b0
fig_sunburst = go.Figure(
go.Sunburst(
ids=['tot', 'a0', 'a1', 'a2', 'a3', 'b0', 'b1', 'b2'],
labels=['tot', 'a0', 'a1', 'a2', 'a3', 'b0', 'b1', 'b2'],
parents=['', 'tot', 'a0', 'a0', 'a0', 'tot', 'b0', 'b0'],
values=[tot, a0, a1, a2, a3, b0, b1, b2],
branchvalues="total",
insidetextorientation='horizontal',
)
)
fig_sunburst.update_layout(go.Layout(width=400, height=400,
margin=dict(t=20, l=20, r=20, b=20),))
fig_sankey = go.Figure(
go.Sankey(
node=dict(
label=['tot', 'a0', 'a1', 'a2', 'a3', 'b0', 'b1', 'b2'],
),
link=dict(
source=[0, 0, 1, 1, 1, 5, 5],
target=[1, 5, 2, 3, 4, 6, 7],
value=[a0, b0, a1, a2, a3, b1, b2],
),
)
)
fig_sankey.update_layout(go.Layout(width=400, height=400,
margin=dict(t=20, l=20, r=20, b=20),))
print(fig_sankey["data"][0]["link"]["value"])
return fig_sunburst, fig_sankey
app.run_server()
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie damit, das bereitgestellte Python-Dash-callback-Beispiel mit den angegebenen Python-, Plotly- und Dash-Versionen auszuführen, und vergleichen Sie die Sankey- und Sunburst-Aktualisierungen nach dem Klicken auf „Change values.“ Verfolgen Sie den callback-to-graph update path für Sankey-Daten; abgeschlossen ist die Aufgabe, wenn die Sankey-Linkwerte bei callbacks sichtbar aktualisiert werden, genau wie bei Sunburst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- data-visualization
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100