Za pomocą poniższego kodu mogę uzyskać wykres 2x2 z 4 działkami. Za pomocą pędzli mogę wybrać punkty danych. Mam pytanie, w jaki sposób uzyskać wybrane punkty danych jako tablicę JSON lub cvs. Ten kod używa mlpd3, ale bokeh może robić podobne wybory za pomocą pędzli. Ale nie ma przykładu wyboru punktów danych. Próbuję uzyskać wybrane dane jako obiekt, aby kontynuować przetwarzanie za pomocą Pythona. Byłoby miło zobaczyć dane w komórce.Python: Jak uzyskać dane z połączonych pędzli w mlpd3, Bokeh, Plotly?
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mat
import mpld3
mpld3.enable_notebook()
from mpld3 import plugins
fig, ax = plt.subplots(2, 2, figsize=(10, 8))
fig.subplots_adjust(hspace=0.1, wspace=0.1)
ax = ax[::-1]
X = np.random.normal(size=(2, 100))
for i in range(2):
for j in range(2):
ax[i, j].xaxis.set_major_formatter(plt.NullFormatter())
ax[i, j].yaxis.set_major_formatter(plt.NullFormatter())
points = ax[i, j].scatter(X[j], X[i])
plugins.connect(fig, plugins.LinkedBrush(points))
Bokeh ma podobne zachowanie w CustomJS podczas wyboru
Którykolwiek z nich jest łatwiej wyodrębnić wybrany element - będzie działać .. Jeśli istnieje rozwiązanie Plotly, które również działają .
Nie ma sposobu, aby to zrobić w mpld3: wyjście mpld3 jest statyczną wizualizacją javascript, która nie wymaga (ani nie zna) zaplecza Pythona. Z tego powodu ten rodzaj komunikacji między frontendem a backendem wymagałby prawie całkowitego przerobienia biblioteki. Proponuję użyć Bokeh. – jakevdp
@jakevdp dzięki! Zmiana pytania. – Merlin