【问题标题】:Storing pyplot object in variable将pyplot对象存储在变量中
【发布时间】:2018-05-23 01:16:25
【问题描述】:

请参考以下代码。

>>> p = plt.plot(year, rank)
>>> p.show()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'show'
>>> plt.plot(year, rank)
[<matplotlib.lines.Line2D object at 0x7f3b56443890>]
>>> plt.show()

当我尝试将plt 存储在变量p 中时,它显示AttributeError: 但是当直接使用plt.show() 时,它正在工作。我无法理解其中的区别。 我在Ubuntu 16.4 中使用python 2.7,并从terminal 运行程序。

【问题讨论】:

  • 这不是您要存储的 plt,只是 plt.plot 的返回值,它返回一个 Line2D 对象。 plt 是 matplotlib.pyplot “存储”

标签: python-2.7 matplotlib terminal


【解决方案1】:

plt.plot(x,y) 返回Line2D 对象的列表。您将此列表存储在变量p 中。正如错误告诉你的那样,'list' object has no attribute 'show'。这可以从字面上理解,因为show()matplotlib.pyplot 模块中的一个函数,任何普通的python list 甚至都不知道matplotlib 的存在。

当然,您仍然可以将列表存储在变量中,但为了显示绘图,您需要使用plt.show(),而与您存储任何绘图命令返回的位置无关

import matplotlib.pyplot as plt
p = plt.plot(x,y)
plt.show()

【讨论】:

  • plt.show() 只执行一次。如果我再次调用它,它不会显示。我不知道原因。
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 2015-06-13
  • 2012-08-30
  • 2021-07-11
  • 2021-03-10
  • 2013-12-03
  • 2016-01-22
  • 1970-01-01
相关资源
最近更新 更多