请参阅以下代码。
>>> 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()
时,它就可以工作了。我无法理解其中的差异。
我在python 2.7
中使用Ubuntu 16.4
,并从terminal
运行该程序。
答案 0 :(得分:0)
Line2D
返回p
个对象的列表。您将此列表存储在变量'list' object has no attribute 'show'
中。正如错误告诉您的那样,show()
。这可以从字面上理解,因为matplotlib.pyplot
是list
模块中的函数,并且任何普通的python plt.show()
甚至都不知道matplotlib的存在。
您当然可以将列表存储在变量中,但为了显示图表,您需要使用import matplotlib.pyplot as plt
p = plt.plot(x,y)
plt.show()
,而不依赖于存储任何绘图命令的返回值
saver = tf.train.Saver()
ss = saver.save(sess, '/tmp/new_trained_model.ckpt')