Bokeh Bokeh 在IPython notebook中丢失绘图
在本文中,我们将介绍Bokeh在IPython notebook中丢失绘图的问题以及解决方法。
阅读更多:Bokeh 教程
问题描述
在使用Bokeh绘制图形时,有时候会遇到在IPython notebook中丢失绘图的问题。当我们运行代码时,代码正常执行,但是无法在输出的单元格中看到绘图结果。
问题原因
这个问题通常是由于Bokeh绘图在IPython notebook中的默认输出方式不兼容导致的。Bokeh默认使用HTML输出,而IPython notebook默认使用Jupyter内置的输出。由于这种差异,Bokeh绘图无法正确地在IPython notebook中显示出来。
解决方法
要解决Bokeh在IPython notebook中丢失绘图的问题,有以下两种方法。
方法一:使用reset_output函数
Bokeh提供了一个reset_output函数,可以将输出方式重置为Jupyter内置的输出。我们只需要在绘图代码的前面添加一行reset_output()的代码就可以解决问题。
from bokeh.plotting import figure, output_notebook, show, reset_output
# 在绘图代码前重置输出方式
reset_output()
# 其他绘图代码...
使用reset_output函数可以在不修改其他代码的情况下解决Bokeh在IPython notebook中丢失绘图的问题。
方法二:使用output_notebook函数
另一种解决方法是使用output_notebook函数将输出方式设置为Jupyter内置的输出。我们只需要在绘图代码的前面添加一行output_notebook()的代码就可以解决问题。
from bokeh.plotting import figure, output_notebook, show
# 设置输出方式为Jupyter内置的输出
output_notebook()
# 绘图代码...
使用output_notebook函数可以直接将Bokeh的输出方式设置为Jupyter内置的输出,从而解决Bokeh在IPython notebook中丢失绘图的问题。
示例说明
下面是一个使用Bokeh绘制折线图的示例代码,展示了如何解决Bokeh在IPython notebook中丢失绘图的问题。
from bokeh.plotting import figure, output_notebook, show, reset_output
# 在绘图代码前重置输出方式
reset_output()
# 创建一个新的绘图对象
p = figure(title="折线图示例", x_axis_label="X轴", y_axis_label="Y轴")
# 添加数据点
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="数据一", line_color="red")
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="数据二", line_color="blue")
# 输出绘图结果
show(p)
上述代码中,我们首先使用reset_output函数将输出方式重置为Jupyter内置的输出,然后创建一个新的绘图对象p,并添加数据点。最后使用show函数将绘图结果输出。
总结
通过本文的介绍,我们了解到Bokeh在IPython notebook中丢失绘图的问题以及解决方法。我们可以使用reset_output函数或output_notebook函数来解决这个问题,并成功在IPython notebook中显示Bokeh绘图结果。希望本文对大家有所帮助。