概述
在Jupyter Notebook
或Jupyter Lab
环境中运行以下代码可知
import matplotlib
print(matplotlib.get_backend())
Jupyter
环境的默认后端为module://ipykernel.pylab.backend_inline
。
默认情况下,使用默认后端,matplotlib
在Jupyter
环境即便开启了交互绘图模式,也不能正常实现交互式绘图。
如果在Jupyter
环境中实现matplotlib
交互式绘图,必须使用Matplotlib Jupyter Widget Backend
,即ipympl
包(原名:jupyter-matplotlib)。
ipympl
包是matplotlib
开发组专门为Jupyter
环境开发的交互式后端,利用Jupyter Widget
实现功能,项目地址为 https://github.com/matplotlib/ipympl
使用ipympl
安装
使用pip
或conda
进行安装。
pip install ipympl
基本使用
安装完ipympl
,切记要重启Jupyter Notebook
或Jupyter Lab
服务。
在jupyter
中执行魔术命令%matplotlib widget
将后端切换为ipympl
。
%matplotlib widget
import matplotlib
matplotlib.get_backend()
'module://ipympl.backend_nbagg'
然后,输入绘图语句并运行。在输出区域将会出现交互绘图图形。跟传统绘图图形相比,交互绘图图形主要有以下区别:
- 显示图形标题。
- 具有工具栏,可以使用交互工具。
- 图形大小可调整。
- 其他单元格的绘图语句会持续作用于交互绘图图形。
设置交互绘图图形组件
通过canvas
对象的相关属性可以控制交互绘图图形的组件。
fig = plt.gcf()
# 是否显示工具栏
fig.canvas.toolbar_visible = False
# 工具栏的位置
fig.canvas.toolbar_position = 'left'
# 是否显示图形名称
fig.canvas.header_visible = False
# 是否显示脚标
fig.canvas.footer_visible = False
# 图形是否可调整大小
fig.canvas.resizable = False
通过display函数在任意位置显示交互绘图图形
前面的演示中,交互绘图图形的位置时固定的。通过display(canvas)
函数可以在任意单元格显示交互绘图图形。
通过display函数在任意位置嵌入图形
通过display(figure)
函数可以将绘图图形作为png
图片嵌入单元格。