[BUG] numpy array not correctly read back from figure data
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- numpy, plotly, python
調査の方向性
まず、提供された Dash の再現コードを Python 3.12、numpy 2.2.5、plotly 6.1.1、および記載されている Dash のバージョンで実行し、その後、callback State を通じて返される figure データを調べます。x と y の値を元の配列と比較します。未対応の配列が例外を発生させるか、numpy 配列または有効なリストとして返されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Please provide us your environment, so we can easily reproduce the issue:
Windows 10, python 3.12
dash 3.0.4
dash-core-components 2.0.0
dash-html-components 2.0.0
plotly 6.1.1
numpy 2.2.5
Describe the bug
When I create a go.Figure and add a trace with x and/or y being numpy arrays, the plot is created correctly.
However, when I want to read back the data, some representation of the numpy array is provided as dictionary: {‘dtype’: ‘f8’, ‘bdata’: ‘AAAAAAAA8D8AAAAAAAAAQAAAAAAAAAhAAAAAAAAAEEAAAAAAAAAUQA==’, ‘_inputArray’: {‘0’: 1, ‘1’: 2, ‘2’: 3, ‘3’: 4, ‘4’: 5, ‘bdata’: ‘AAAAAAAA8D8AAAAAAAAAQAAAAAAAAAhAAAAAAAAAEEAAAAAAAAAUQA==’, ‘dtype’: ‘f8’, ‘shape’: ‘5’}}
As also described in https://community.plotly.com/t/changed-behaviour-in-dash-2-18-2-using-numpy-1-26-4-when-reading-figure-into-callback-on-linux/90614
import dash
from dash import dcc, html, Input, Output, State
import plotly.graph_objs as go
import numpy as np
# Initialize the Dash app
app = dash.Dash(__name__)
# Create some sample data using numpy
x_data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y_data = np.array([2.0, 1.5, 3.5, 2.0, 5.0])
# Define the layout of the app
app.layout = html.Div([
dcc.Graph(id='scatter-plot'),
html.Button('Generate Plot', id='generate-button', n_clicks=0),
html.Button('Print Data', id='print-button', n_clicks=0)
])
# Callback to generate the ScatterGL plot
@app.callback(
Output('scatter-plot', 'figure'),
Input('generate-button', 'n_clicks')
)
def update_figure(n_clicks):
# Create a ScatterGL trace
trace = go.Scattergl(
x=x_data,
y=y_data,
mode='markers',
marker=dict(size=10, color='blue')
)
# Create the figure
fig = go.Figure(data=[trace])
fig.update_layout(title='ScatterGL Plot', xaxis_title='X Axis', yaxis_title='Y Axis')
return fig
# Callback to print the x and y data from the figure
@app.callback(
Output('print-button', 'children'),
Input('print-button', 'n_clicks'),
State('scatter-plot', 'figure')
)
def print_data(n_clicks, figure):
if n_clicks > 0 and figure is not None:
# Extract the x and y data from the figure
x_values = figure['data'][0]['x']
y_values = figure['data'][0]['y']
# Print the x and y values
print("X values:", x_values)
print("Y values:", y_values)
return "Print Data"
# Run the app
if __name__ == '__main__':
app.run_server(debug=True)
Expected behavior
A) Throw an Exception when numpy arrays are not supported
B) If numpy arrays are supported return the numpy array or the numpy array converted to a valid list
- 主要言語
- Python
- スター
- 24.5k
- フォーク
- 2.3k
- 平均マージ
- 3日 7時間
- マージ済み PR(30日)
- 30
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
plotly/dash のほかの issue
-
P2 plotly-internal size: 1 task
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
Extract graph schema validation into properly named test対応中かも @Nice6042 が 90 日前に担当しました。 オープンgood first issue P3 size: 1 task
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Patch.update mutates a shared mapping and rewrites earlier merges対応中かも @peterolkhov が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
[BUG] dcc.Dropdown: virtualized list keeps the height measured at opening when options grow while the menu is open対応中かも @KoolADE85 が 2 日前に担当しました。 オープンbug P3 size: 1
plotly/dash#4131 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] `set_props` streaming対応中かも @BSd3v が 5 日前に担当しました。 オープンbug P3 size: 1
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
[BUG] HTTP lifecycle dispatch treats a NO_PROXY-only environment as corporate egress and skips the resolve-and-pinned session対応中かも @bodapatisaikrishna が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
external
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
langchain-ai/docs#7652 ·
メンテナーはふだん 1 日以内に返信
-
[oblt-aw][autodoc] Document new e2e-secret-leak-artifacts workflow and update e2e-all leaf listオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
elastic/oblt-aw#2513 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug p2
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
NCAR/CLM-Tutorial#113 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信