【问题标题】:Click events in python plotly-dash Scatterpolar plotpython plotly-dash Scatterpolar图中的单击事件
【发布时间】:2021-02-12 12:29:26
【问题描述】:

我想创建两个网页,其中包含 iframed plotly-dash 图。我想实现第一个图表的点击事件以重定向到另一个页面(有关该特定数据的更多信息)

我遵循this 指南,但即使我在运行它的 python venv 中安装了 ipywidgets、node.js 和 plotlywidgets 扩展,我的设置中也不会触发 click 事件。上面的例子中有一个注释:

注意:回调只会在跟踪属于 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)

我不知道如何制作/确保它显示在 ipywidget 上下文中。

我知道像this 这样的解决方法,带有layout.clickmode = select 和一个单独的按钮,但我想让该图的on_click() 事件正常工作。

有人可以帮我完成这项工作吗?

【问题讨论】:

    标签: python onclick plotly-dash ipywidgets


    【解决方案1】:

    关于这部分文档:

    在 ipywidget 上下文中

    这意味着这仅适用于例如 jupyter notebook。

    如果您希望在使用 dash 时进行这种图形交互,您应该使用 dcc.Graph 属性来触发您的回调(hoverDataclickDataselectedDatarelayoutData)。

    在此处查看更多信息:Interactive Visualizations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-05-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多