2016-05-13 16 views
2

Ich lese über Click-Ereignisse der Python-API. Es gibt etwas in Javascript hier https://plot.ly/javascript/lasso-selection/, aber ich würde es gerne in Python (wenn möglich) tun.Callback-Funktion offline offline in Python-Code

Ich werde versuchen, so klar wie möglich zu sein.

Ich entwickle ein Plugin in QGIS (http://qgis.org/en/site/), das die Attribute der geographischen Daten nimmt und sie als Eingabe für einige Plotdiagramme verwendet.

Was ich brauche ist zu wissen, ob es möglich ist, ein "Rücksignal" der Punkte (oder Linien oder was auch immer) mit der Lasso-Auswahltaste ausgewählt haben.

Ich versuche eine dynamische Antwort zwischen QGIS Map Canvas und der HTML-Datei von Plotly erstellen. Damit der Benutzer Punkte auf dem Plot auswählen kann, werden diese auch auf dem Kartenfenster ausgewählt (und umgekehrt).

Eine Idee besteht darin, die Lasso-Auswahl zu verwenden und einige Informationen (z. B. eindeutige ID) zu erhalten und sie erneut zu injizieren, sodass QGIS die ausgewählten Punkte auf dem Kartenbereich anzeigt.

Gibt es eine Chance, eine Art Signal der Plots Auswahl zu erhalten und sie zu benutzen?

Vielen Dank an all

Antwort

1

würde ich diese Funktion lieben, aber ich habe Angst, daß wir für das plotly.dash „Umdenken“ warten müssen würden es in Python möglich sein.

Es könnte aber auch möglich sein, diese flask chat app mit der plotly example in your question zu vermischen.

Wir würden ersetzen den console.log Anruf im Callback aus dem plotly lasso Beispiel mit einem socket.emit aus dem WebSockets Flasche App:

graphDiv.on('plotly_selected', function(eventData) { 
    console.log(eventData.points) 
    socket.emit(eventData.points) 
}); 

Und unser Kolben Server würde eine HTML-Vorlage mit dem socket.io Javascript dienen up für die Chat-Anwendung, aber die <DIV> aus der offline-plotly Plot, wie dies die HTML hinzu:

fig = graph_objs.Figure(data=[trace1, trace2]) 
html_div, divid, width, height = plotly.offline.offline._plot_html(
     fig, config=config, validate=False, default_width="100%", default_height=525, global_requirejs=False) 
    html = '<HTML>\n<head>\n <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>\n</head>\n<body>' + html_div + '</body></HTML>' 

ich habe Anhänge über die Kolben html/js in der Zeichenfolge links, aber Sie bekommen th Die Idee. Wenn ich etwas funktioniere, werde ich updaten.