python плотно перерисовывает сюжет по клику - PullRequest
0 голосов
/ 12 октября 2018

У меня есть трехмерная диаграмма рассеяния, построенная на графике python, аналогично графику Les Mis в документах .Я пытаюсь сделать рендеринг графика, когда нажимаю на точку, потому что я хочу добавить слой «фокус» поверх него.

Вот пример функции (работа с Les Misпример, связанный выше):

def focus_plot(focus):

    focus_links = [l for l in data['links'] if (l['source']==focus) or (l['target']==focus)]

    winners = []
    for l in focus_links:
        winners += [l['source'], l['target']]
    winners = list(set(winners))

    XnF=[layt[k][0] for k in range(N) if k in winners]# x-coordinates of nodes
    YnF=[layt[k][1] for k in range(N) if k in winners]# y-coordinates
    ZnF=[layt[k][2] for k in range(N) if k in winners]# z-coordinates

    trace2F=go.Scatter3d(x=XnF,
                   y=YnF,
                   z=ZnF,
                   mode='markers',
                   name='actors',
                   marker=dict(symbol='circle',
                                 size=20,
                                 opacity = 0.6,
                                 color=[1]*len(winners),
                                 colorscale='Viridis')
                   )
return trace2F

Затем вы можете сделать что-то вроде

def re_render(foc_pt):
    trace2F = focus_plot(foc_pt)
    fig=go.Figure(data=plot_data + [trace2F], layout=layout)
    py.iplot(fig)

re_render(10)

, и он будет заново визуализировать график, но с голубыми кругами вокруг узлов, которые связаны сузел 10. Довольно круто.

Но я хочу иметь возможность щелкнуть на узле и заставить его вызвать re_render(node_I_clicked_on).Я попробовал несколько версий того, что описано в этом примере , но я не могу заставить его работать.

Во-первых, я думаю, что мне трудно понять разницу между автономным режимом (я работаю в ноутбуке Jupyter) и онлайн-режимом.Мне сказали, что события нажатия не работают в автономном режиме .Меня не волнует, работает ли это в автономном режиме, но я не могу понять, как опубликовать график, но затем есть событие щелчка, которое повторно отображает график ... это вообще возможно?

Большое спасибо за любую помощь.Дайте мне знать, если у вас возникнут проблемы с воссозданием примера Les Mis с моей новой функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...