Bokeh hakkında güzel bir şey, geri dönüşlerin, bokeh-sunucusuna gerek kalmadan javascript düzeyindeki eylemlerle sonuçlanan Python katmanından belirtilebilmesidir. Böylece, çalışan bir Ipython veya Bokeh sunucusu olmadan bir tarayıcıda çalışan etkileşimli widget'lar oluşturabilirsiniz.Bokeh: Geçişler, Widgets for CustomJS'ye aittir
The 0.9.3. http://bokeh.pydata.org/en/latest/docs/user_guide/interaction.html#cutomjs-for-widgets
from bokeh.io import vform
from bokeh.models import CustomJS, ColumnDataSource, Slider
from bokeh.plotting import figure, output_file, show
output_file("callback.html")
x = [x*0.005 for x in range(0, 200)]
y = x
source = ColumnDataSource(data=dict(x=x, y=y))
plot = figure(plot_width=400, plot_height=400)
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)
callback = CustomJS(args=dict(source=source), code="""
var data = source.get('data');
var f = cb_obj.get('value')
x = data['x']
y = data['y']
for (i = 0; i < x.length; i++) {
y[i] = Math.pow(x[i], f)
}
source.trigger('change');
""")
slider = Slider(start=0.1, end=4, value=1, step=.1, title="power", callback=callback)
layout = vform(slider, plot)
show(layout)
Bazı basit bir çevrimiçi atamaları oluşturmak için böyle bir kod uyarlamak istiyorum: dokümantasyon Bir ipython defterine üretebilir bir örnek verir. Benim sorum, bir kaydırıcıyı çağırmadan doğrudan python'dan javascript'e diğer değişkenleri nasıl geçirebilirim. Örneğin varsayalım ben JavaScript olmak istiyorum: A (örneğin, A = 10) üzerinde bir ipython kodu hücrede tanımlandı
y[i] = Math.pow(x[i], A*f)
. Javascript'te 'var A = 10' tanımlamak için yeterince kolay ama python'da A ve diğer değişkenlerin değerini ayarlamak ve daha sonra bu javascript'e aktarmak istiyorum. Bir yolu var mı?
Teşekkürler, bu harika olurdu. Bokeh sunucusu ile birkaç temel etkileşimli görselleştirmeler oluşturdum ve Ipython'daki ipywidgets kitaplığından etkileşimde bulunun (not [Bokeh belgeleri] (http://bokeh.pydata.org/en/latest/docs/user_guide/notebook.html#id5)) artık kullanımdan kaldırılmış Ipython.html.widgets kitaplığını ifade eder, dolayısıyla ipywidgets olarak değiştirilmelidir). Ancak, yukarıdaki problemi çözebilirse, python/Bokeh yüklü olmayan kişiler için etkileşimli içeriği oluşturmak ve değiştirmek kolaylaşır. Bu, disiplinlerin çoğunda öğretim * kurabiliyor. – JHuw