Jan*_*ova 6 python onclick ipywidgets plotly-dash
我想创建两个包含 iframed 虚线图的网页。我想实现第一个图表的点击事件以重定向到另一个页面(包含有关该特定数据的更多信息)
我遵循了本指南,但即使我将 ipywidgets、node.js 和plotlywidgets 扩展安装到我正在运行的 python venv 中,我的设置中也不会触发单击事件。上面的示例中有一条注释:
注意:只有当跟踪属于plotly.graph_objs.FigureWidget 的实例并且它显示在ipywidget 上下文中时才会触发回调。使用plot/iplot 显示的图形不会触发回调。
该示例使用的是FigureWidget,我通过将数字传递到dcc.Graph应与 相同的方式来绘制它fig.show()。整个代码看起来像这样
import plotly.graph_objects as go
import numpy as np
np.random.seed(1)
x = np.random.rand(100)
y = np.random.rand(100)
fig = go.FigureWidget([go.Scatter(x=x, y=y, mode='markers')])
scatter = fig.data[0]
colors = ['#a3a7e4'] * 100
scatter.marker.color = colors
scatter.marker.size = [10] * 100
fig.layout.hovermode = 'closest'
# create our callback function
def update_point(trace, points, selector):
c = list(scatter.marker.color)
s = list(scatter.marker.size)
for i in points.point_inds:
c[i] = '#bae2be'
s[i] = 20
with fig.batch_update():
scatter.marker.color = c
scatter.marker.size = s
scatter.on_click(update_point)
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div([
dcc.Graph(figure=fig)
])
app.run_server(debug=True, use_reloader=False)
Run Code Online (Sandbox Code Playgroud)
我不知道如何制作/确保它显示在 ipywidget 上下文中。
我知道像这样的解决方法和layout.clickmode = select一个单独的按钮,但我想让人物的on_click()事件正常工作。
有人可以帮我完成这项工作吗?
| 归档时间: |
|
| 查看次数: |
7948 次 |
| 最近记录: |