Bokeh Bokeh中的’hold’属性发生了什么
在本文中,我们将介绍Bokeh中的’hold’属性,并探讨它在最近的版本中发生了什么变化。
阅读更多:Bokeh 教程
什么是’hold’属性?
‘hold’是Bokeh中一个重要的属性,它控制着是否在绘图时立即显示结果。在旧版本的Bokeh中,默认情况下,’hold’属性被设置为True,这意味着每个绘图命令都会立即显示在屏幕上。这样的行为适用于大多数用户的需求,但对于一些特定的情况,更灵活的控制就显得尤为重要。
‘hold’属性的变化
在最近的版本中,Bokeh团队对’hold’属性进行了重大调整。为了提高性能和使Bokeh与其他Python绘图库更加一致,将’hold’的默认值更改为False。这意味着现在,当你发出一个绘图命令时,结果不会立即显示在屏幕上,而是会等到显示整个绘图的命令被执行时才一起显示。
这一变化可能会对原有代码产生一些影响。例如,在旧版本中,以下代码会立即显示两个图表:
p1 = figure()
p1.circle(x=[1, 2, 3], y=[1, 2, 3], color='red')
show(p1)
p2 = figure()
p2.line(x=[1, 2, 3], y=[3, 2, 1], color='blue')
show(p2)
而在最新版本中,同样的代码只会在最后一行的show命令执行时才会显示两个图表。
为了在新版本中实现类似于旧版本的’hold’行为,你可以显式使用output_notebook(hold=True)
方法。这样一来,每个绘图命令都会立即显示结果。
from bokeh.io import output_notebook, show
from bokeh.plotting import figure
output_notebook(hold=True)
p1 = figure()
p1.circle(x=[1, 2, 3], y=[1, 2, 3], color='red')
show(p1)
p2 = figure()
p2.line(x=[1, 2, 3], y=[3, 2, 1], color='blue')
show(p2)
总结
Bokeh中的’hold’属性在最近的版本中发生了重要的变化。默认情况下,’hold’属性由原来的True改为False,使得绘图结果不再立即显示在屏幕上。为了模拟旧版本的行为,可以显式设置output_notebook(hold=True)
。这样,每个绘图命令都会立即显示结果。这一改变提高了性能和与其他Python绘图库的兼容性。无论是使用旧版本还是新版本的Bokeh,我们都可以根据具体需求来控制’hold’属性的行为。通过适应新版本的Bokeh,我们可以更好地适应未来的数据可视化需求。