概述

Jupyter NotebookJupyter Lab环境中运行以下代码可知

import matplotlib
print(matplotlib.get_backend())

Jupyter环境的默认后端为module://ipykernel.pylab.backend_inline

默认情况下,使用默认后端,matplotlibJupyter环境即便开启了交互绘图模式,也不能正常实现交互式绘图。

如果在Jupyter环境中实现matplotlib交互式绘图,必须使用Matplotlib Jupyter Widget Backend,即ipympl包(原名:jupyter-matplotlib)。

ipympl包是matplotlib开发组专门为Jupyter环境开发的交互式后端,利用Jupyter Widget 实现功能,项目地址为 https://github.com/matplotlib/ipympl

使用ipympl

安装

使用pipconda进行安装。

pip install ipympl

基本使用

安装完ipympl,切记要重启Jupyter NotebookJupyter 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图片嵌入单元格。

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐