首页 > 分享 > 交互式图形 — Matplotlib 3.3.3 文档

交互式图形 — Matplotlib 3.3.3 文档

交互式图形¶

在处理数据时,交互性是非常宝贵的。Matplotlib GUI窗口中内置的平移/缩放和鼠标定位工具通常就足够了,但是您也可以使用事件系统来构建定制的数据探索工具。

Matplotlib附带 backends 绑定到多个GUI工具包(Qt、Tk、Wx、GTK、macOS、JavaScript)和第三方包提供了到的绑定 kivy 和 Jupyter Lab . 为了使图形能够响应鼠标、键盘和绘画事件,GUI事件循环需要与交互式提示集成。我们建议使用IPython(请参阅 below )

这个 pyplot 模块提供显式创建图形的功能,其中包括交互式工具、工具栏、工具提示和 key bindings :

pyplot.figure创建新的空 figure.Figure 或选择现有地物 pyplot.subplots创建新的 figure.Figure 用一个网格填充它 axes.Axes

pyplot 有“当前图形”的概念,可以通过 pyplot.gcf 以及“电流轴”的概念 pyplot.gca . 几乎所有的函数 pyplot 穿过水流 Figure / axes.Axes (视情况而定)创造一个。

Matplotlib保留对通过创建的所有开放图形的引用 pyplot.figure 或 pyplot.subplots 这样数字就不会被垃圾收集。 Figure 可以关闭和注销 pyplot 单独通过 pyplot.close ;全部打开 Figure 可以通过关闭 plt.close('all') .

有关Matplotlib事件系统和集成事件循环的更多讨论,请阅读:

交互式程序设计与异步图形 事件处理和挑选

IPython集成¶

我们建议将IPython用于交互式shell。除了它的所有特性(改进的选项卡完成、magics、多行编辑等),它还确保GUI工具箱事件循环与命令行正确集成(请参见 命令提示集成 )

在本例中,我们通过IPython提示符创建和修改地物。该图显示在Qt5Agg GUI窗口中。配置集成并启用 interactive mode 使用 %matplotlib 魔术:

::

在 [1] 用法:%matplotlib使用matplotlib后端:Qt5Agg

在 [2] :导入matplotlib.pyplot文件作为plt

新建地物窗口:

In [3]: fig, ax = plt.subplots()

向窗口中添加数据的折线图:

In [4]: ln, = ax.plot(range(5))

将线条的颜色从蓝色更改为橙色:

In [5]: ln.set_color('orange')

如果要禁用绘图的自动重画:

In [6]: plt.ioff()

如果要重新启用绘图的自动重画:

In [7]: plt.ion()

在最新版本的 Matplotlib 和 IPython ,导入就足够了 matplotlib.pyplot 并打电话 pyplot.ion . 使用 % magic保证在Matplotlib和IPython的所有版本中都能工作。

默认用户界面¶

创建的窗口 pyplot 有一个带有导航按钮的交互式工具栏,以及光标指向的数据值的读数。默认情况下会注册许多有用的keybinding。

导航键盘快捷键¶

下表包含所有默认键,可以使用 matplotlibrc .

命令 默认密钥绑定和rcParam 家庭/复位 rcParams["keymap.home"] (default: ['h', 'r', 'home']) 背部 rcParams["keymap.back"] (default: ['left', 'c', 'backspace', 'MouseButton.BACK']) 福沃德 rcParams["keymap.forward"] (default: ['right', 'v', 'MouseButton.FORWARD']) 平移/缩放 rcParams["keymap.pan"] (default: ['p']) 缩放缩放 rcParams["keymap.zoom"] (default: ['o']) 保存 rcParams["keymap.save"] (default: ['s', 'ctrl+s']) 切换全屏 rcParams["keymap.fullscreen"] (default: ['f', 'ctrl+f']) 切换主要网格 rcParams["keymap.grid"] (default: ['g']) 切换次要网格 rcParams["keymap.grid_minor"] (default: ['G']) 切换X轴比例(对数/线性) rcParams["keymap.xscale"] (default: ['k', 'L']) 切换Y轴比例(对数/线性) rcParams["keymap.yscale"] (default: ['l']) 近景 rcParams["keymap.quit"] (default: ['ctrl+w', 'cmd+w', 'q']) 将平移/缩放约束到X轴 持有 x 用鼠标平移/缩放时 将平移/缩放约束到Y轴 持有 y 用鼠标平移/缩放时 保留纵横比 持有 CONTROL 用鼠标平移/缩放时

其他Python提示¶

交互模式在默认的Python提示符下工作:

>>> import matplotlib.pyplot as plt >>> plt.ion() >>>

但是,这并不能确保事件挂钩已正确安装,并且您的数字可能没有响应。有关详细信息,请参阅GUI工具箱的文档。

Jupyter笔记本/实验室¶

注解

要获得此处描述的交互式功能,必须使用交互式后端。笔记本中的默认后端(内联后端)不是。 backend_inline 渲染图形一次,并在执行单元格时将静态图像插入笔记本。由于图像是静态的,因此无法平移/缩放、获取用户输入或从其他单元格更新图像。

要在“classic”笔记本或Jupyter lab中获取交互式图形,请使用 ipympl 使用 我的Widget 框架。如果 ipympl 使用魔法安装:

%matplotlib widget

选择并启用它。

如果你只需要使用经典笔记本,你可以使用

%matplotlib notebook

其中使用 backend_nbagg Matplotlib提供的后端;但是,nbagg不能在Jupyter实验室中工作。

GUIs+Jupyter公司¶

您还可以使用Jupyter笔记本中的一个非``ipympl``GUI后端。如果您在本地运行Jupyter内核,GUI窗口将出现在您的桌面上,与您的web浏览器相邻。如果在远程服务器上运行笔记本,内核将尝试打开远程计算机上的GUI窗口。除非您已安排将xserver转发回桌面,否则您将无法看到该窗口或与之交互。它也可能引发一个例外。

PyCharm、Spyder和VSCode¶

许多ide都内置了与Matplotlib的集成,有关配置的详细信息,请参阅它们的文档。

相关知识

基于Python实现交互式数据可视化的工具(用于Web)
Jupyter notebook入门教程(下)
python之数据分析Matplotlib
如何在matplotlib中添加笔画符号D?
python(matplotlib)绘制y=x^2函数曲线和正弦曲线
Python的可视化包 – Matplotlib
鸢尾花数据可视化——基于matplotlib
Python中的花——详解花的图形绘制
matplotlib字体查找机制探索
如何python花一朵玫瑰花

网址: 交互式图形 — Matplotlib 3.3.3 文档 https://m.huajiangbk.com/newsview1545619.html

所属分类:花卉
上一篇: Apple 探索健康新领域,推出
下一篇: 微信支付委托代扣交互图应该如何制