[英]How to obtain Click Event Coordinate Data on Plotly Dash Graph in Python?
我曾嘗試在網絡上導航以解決此問題,但沒有成功。 我找到的最接近的解決方案是this ,但是,它在 R 中,並且過去兩天我一直試圖在 Python 中尋找解決方案。
我已經在交互式圖形上弄亂了Plotly Dash 的文檔,並且 clickData 和 hoverData 似乎只輸出圖表上被點擊/懸停的實際數據點的坐標數據。 我的目標是通過在圖形上單擊兩次鼠標獲得一對 x,y 坐標,以便我能夠使用該對坐標在圖形上繪制一條線。 然而,似乎 Plotly 的 Dash Interactive Graphing 在提供不在實際數據點上的鼠標坐標數據的能力方面受到限制。 是否有任何解決方法或我錯過的明顯解決方案/文檔的一部分?
import numpy as np
import pandas as pd
import plotly.express as px
import math, json
import dash
from dash.dependencies import Input, Output, State
from jupyter_dash import JupyterDash
GS = 100
fig = px.line(
x=np.linspace(0, 1, 300), y=(np.sin(np.linspace(0, math.pi * 3, 300)) / 2) + 0.5
).add_traces(
px.scatter(
x=np.repeat(np.linspace(0, 1, GS), GS), y=np.tile(np.linspace(0, 1, GS), GS)
)
.update_traces(marker_color="rgba(0,0,0,0)")
.data
)
# Build App
app = JupyterDash(__name__)
app.layout = dash.html.Div(
[dash.dcc.Graph(id="graph", figure=fig), dash.html.Div(id="where")]
)
@app.callback(
Output("where", "children"),
Input("graph", "clickData"),
)
def click(clickData):
if not clickData:
raise dash.exceptions.PreventUpdate
return json.dumps({k: clickData["points"][0][k] for k in ["x", "y"]})
# Run app and display result inline in the notebook
app.run_server(mode="inline")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.