【bokeh】(2)bokeh server 实现动态切换图片

实验环境: win7 python3.5 bokeh 0.13 

效果:

原理: btn绑定一个函数callback ,在这个callback函数里更换图片对象的data_source

代码:

from bokeh.models import ColumnDataSource,Button
from bokeh.layouts import row

from bokeh.plotting import figure, show,curdoc


def callback():
  global im
  urls=["""https://b-ssl.duitang.com/uploads/item/201604/15/20160415073709_d2XYs.jpeg""",
  """https://b-ssl.duitang.com/uploads/item/201601/19/20160119143747_i84Nx.png""",
  """https://b-ssl.duitang.com/uploads/item/201408/12/20140812131500_GTvHZ.jpeg"""
  ]
  u=urls.index(im.data_source.data['url'][0])
  im.data_source.data['url']=[urls[(u+1)%len(urls)],url3]


#url="""C:\\Users\\Administrator\\Pictures\\cat1.jpg"""
url1="""https://b-ssl.duitang.com/uploads/item/201604/15/20160415073709_d2XYs.jpeg"""
url2="""https://b-ssl.duitang.com/uploads/item/201601/19/20160119143747_i84Nx.png"""
url3="""https://b-ssl.duitang.com/uploads/item/201408/12/20140812131500_GTvHZ.jpeg"""


data=ColumnDataSource({"url":[url1,url2],'x':[0,50],'y':[100,50]})
p=figure(x_range=(0,100),y_range=(0,100),plot_width=800,plot_height=800)
im=p.image_url(url=[url1,url2],x=[0,50],y=[100,50],w=50,h=50)

btn=Button(label="swich image")

btn.on_click(callback)

p.xaxis.visible=None
p.yaxis.visible=None
p.toolbar.logo=None
p.toolbar_location=None
r=row(btn,p)

#show(r)

curdoc().add_root(r)

猜你喜欢

转载自www.cnblogs.com/mathf/p/9430455.html