Sankey is not updated on callback
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 18.8k
- Fork
- 2.8k
- Merge trung bình
- 16 giờ 26 phút
- Pull request đã merge (30 ngày)
- 21
Mô tả
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()
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách chạy ví dụ callback Python Dash được cung cấp với các phiên bản Python, Plotly và Dash đã nêu, rồi so sánh các lần cập nhật Sankey và Sunburst sau khi nhấp vào “Change values.” Truy vết callback-to-graph update path cho dữ liệu Sankey; được xem là hoàn tất khi các giá trị liên kết Sankey được làm mới một cách rõ ràng trong các callbacks, giống như Sunburst.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- data-visualization
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 42/100