首页 > 解决方案 > 导入 pyplot 模块并调用 pyplot,plot() 但未将返回值存储到任何变量。但是调用 pyplot.show() 函数?

问题描述

从 matplotlib 库我导入了 pyplot 模块。在那个模块中有一个我用过的函数 plot() 。现在我的问题是:

  1. 为什么 plot() 函数不在任何类中?如果它在任何类中,为什么我们不创建该类的任何对象并使用 plot() 函数。

  2. 从官方文档中我了解到 plot() 返回一个 Line2D 对象。但是 plot() 的返回没有存储在任何变量中,但我们正在使用 show() 函数。通常它应该返回_object.show() 但是pyplot 模块有一个show() 函数,它在不使用任何对象的情况下调用,就像plot() 函数一样。我们只使用 pyplot.show() 来显示图表。这怎么可能。我的意思是无论是在 returned_object.show() 还是 pyplot.show(从 plot() 函数返回的对象)都更有意义。它如何显示该特定情节而不是其他随机情节?

我已经浏览了示例代码并成功绘制。为了消除我的疑虑,我访问了官方的 matplotlib 模块。


from matplotlib import pyplot as plt

years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]

gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3]

# create a line chart, years on x-axis, gdp on y-axis
plt.plot(years, gdp, color='green', marker='o', linestyle='solid')

# add a title
plt.title("Nominal GDP")

# add a label to the y-axis
plt.ylabel("Billions of $")

plt.show()

标签: pythonmatplotlib

解决方案


文档说 pyplot is a state-based interface to matplotlib.。它将你的绘图命令的当前状态保存在自身内部——比如当前的 Axes、Figure、Artists...

教程

在 matplotlib.pyplot 中,函数调用中保留了各种状态,以便它跟踪诸如当前图形和绘图区域之类的内容,并且绘图函数被定向到当前轴(请注意,此处和大多数地方的“轴”该文档指的是图形的轴部分,而不是多个轴的严格数学术语)。


这些函数还返回 Artists、Lines 等,因此您可以将它们分配给名称并将其属性修改为您的心脏内容。


至少通过传奇指南值得阅读教程


推荐阅读