matplotlib Axes.plot() 与 pyplot.plot()

2025-03-04 08:23:00
admin
原创
95
摘要:问题描述:Axes.plot()和方法之间有什么区别pyplot.plot()?一个方法是否使用另一个方法作为子程序?看来我的绘图选项是line = plt.plot(data) 或者ax = plt.axes() line = ax.plot(data) 甚至fig = plt.figure() ax = ...

问题描述:

Axes.plot()和方法之间有什么区别pyplot.plot()?一个方法是否使用另一个方法作为子程序?

看来我的绘图选项是

line = plt.plot(data)

或者

ax = plt.axes()
line = ax.plot(data)

甚至

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
line = ax.plot(data)

有哪些情况更适合使用其中一种?


解决方案 1:

对于绘制单个图,最佳做法可能是

fig = plt.figure()
plt.plot(data)
fig.show()

现在,让我们看一下问题中的 3 个例子并解释它们的作用。

  1. 采用当前图形和轴(如果不存在则创建一个新的)并绘制到它们中。

line = plt.plot(data)
  1. 在您的情况下,行为与以前相同,明确说明绘图的轴。

 ax = plt.axes()
 line = ax.plot(data)

ax.plot(...)如果要绘制多个轴(可能在一个图中),则必须使用这种方法。例如,当使用子图时。

  1. 明确创建新图形 - 您不会在前一个图形上添加任何内容。明确创建一个具有给定矩形形状的新轴,其余部分与 2 相同。

 fig = plt.figure()
 ax = fig.add_axes([0,0,1,1])
 line = ax.plot(data)

可能出现的问题figure.add_axes是,它可能会向图形添加一个新的轴对象,该对象将覆盖第一个轴对象(或其他轴对象)。如果请求的大小与现有大小不匹配,就会发生这种情况。

解决方案 2:

本质上没有区别。plt.plot将在某个时候(在确保有一个图形和一个可用于绘图的轴之后)从该轴实例调用绘图函数。

因此主要的区别在于用户方面:

  • 您是否想使用类似 Matlab 的状态机方法,这种方法可以为简单的绘图任务节省一些代码行?那么使用pyplot

  • 您是否想使用更符合 Python 风格的面向对象方法完全控制绘图?那么请明确使用轴之类的对象。

您可能想要阅读 matplotlib使用指南。

解决方案 3:

Pyplot 的绘图方法可以应用于 Pyplot 根 (pyplot.plot()) 或轴对象 (axes.plot())。

直接在 Pyplot 库中调用绘图函数 (pyplot.plot()) 会创建默认子图(图形和轴)。在轴对象上调用该函数 (axes.plot()) 要求您已经创建了自己的轴对象,并将图形放到该自定义绘图空间中。

虽然 pyplot.plot() 很容易使用,但是如果您创建一个轴对象 axis.plot(),您就可以更好地控制您的空间(并且能够更好地理解与其他库的交互)。

Axes.plot() 返回一个轴对象。每个轴对象都有一个父图形对象。轴对象包含绘图方法以及大多数自定义选项,而图形对象存储所有图形级属性并允许绘图输出为图像。

如果您使用 pyplot.plot() 方法并想要开始自定义轴,则可以通过调用 pyplot.gca() 来“获取当前轴”,找出其创建的默认轴对象的名称。

解决方案 4:

python plt.plot():它会创建许多默认subplot值,节省许多行代码并且易于理解。

Axes.plot():使用axes对象将使您更好地自定义绘图空间。

解决方案 5:

如果这仍然相关,Matplotlib 的官方网站对这个问题有明确的答案。转到“面向对象接口和 pyplot 接口”。

本节清楚地回答了这个问题。使用“fig, ax”,即面向对象的方法,可以让我们更加控制自定义绘图。另一方面,使用“pyplot”会让我们对绘图的控制力减弱,但好处是,它使我们不必编写更多行代码,并且在处理单个绘图时更容易、更方便。

Matplotlib 的官方文档表明“使用哪种方法完全是个人的选择,没有哪种方法更受青睐。不过,坚持一种方法以保持一致性是好的。”

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3878  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2714  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   49  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   49  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   49  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用