Bir Isomap algoritmasının sonucunu temsil etmek istiyorum. Ama aynı zamanda kullanıcının saklamak istediği bileşen sayısını seçmesini de istiyorum. Bunun için bir kaydırıcı nesne oluşturuyorum ancak buradaki geriçağırım işlevi Javascript'tedir. Bu nedenle, verilerimi güncellemek için scikit öğrenmelerini kullanamıyorum. Bu benim kodum, birileri fikir verebilir mi? aynı anda tüm .data
dicti güncellemek için her zaman daha iyidir, senDinamik görselleştirme bokeh
import numpy as np
from bokeh.io import vform
from bokeh.models import CustomJS, ColumnDataSource
from bokeh.plotting import figure, output_file, show
from bokeh.models.widgets import Slider
from sklearn import manifold
output_file("test.html")
X = np.random.randn(1000,20)
Y = np.random.randn(1000,20)
X_isomap = manifold.Isomap(n_neighbors=10, n_components=2).fit_transform(X)
X1 = X_isomap[:,0]
X2 = X_isomap[:,1]
IsoSource = ColumnDataSource(data=dict(x=X1, y=X2,DATA=X))
plot1 = figure(plot_width=400, plot_height=400,tools = "pan,wheel_zoom,box_zoom,reset,resize")
plot1.circle('x', 'y',source=IsoSource,size=7, color="navy")
#sliderCompMDS = Slider(title="n_components MDS",value=2,start=2,end=20,step=1)
callback = CustomJS(args=dict(source=IsoSource),code="""
var data = source.get('data');
var f = cb_obj.get('value')
x = data['x']
y =data['y']
X = data['DATA']
donnees = manifold.Isomap(n_neighbors=10, n_components=f).fit_transform(X)
x = donnees[:,0]
y = donnees[:,1]
source.trigger('change');
""")
sliderCompIso = Slider(title="n_components Isomap",value=2,start=1,end=20,step=1,callback=callback)
layout = vform(sliderCompIso, plot1)
show(layout)
Kullanıcı etkileşimlerinden * python * kodunu tetiklemek isterseniz, bir Bokeh sunucusu uygulaması oluşturmanız gerekir. Sizin de belirttiğiniz gibi, 'CustomJS' geri çağrıları sadece python değil, JavaScript'i çalıştırabilir. Burada birkaç örnek görebilirsiniz: https://github.com/bokeh/bokeh/tree/master/examples/app (uygulamanın canlı çalışan versiyonuna gitmek için bir resme tıklayın) ve burada çok sayıda doküman bulabilirsiniz. : http://bokeh.pydata.org/en/latest/docs/user_guide/server.html – bigreddot
Bağlantılarınız için çok teşekkürler. Sorunumu çözmeme yardımcı oldu –