matplotlib 2d line line,= plot comma含义

时间:2013-05-24 20:01:19

标签: python matplotlib line tuples comma

我正在浏览matplotlib的基本教程, 我正在处理的示例代码是:

import numpy as np

import matplotlib.pylab as plt

x=[1,2,3,4]
y=[5,6,7,8]

line, = plt.plot(x,y,'-')

plt.show()

有人知道行(line,=plt.plot(x,y,'-'))之后的逗号是什么意思吗? 我认为这是一个错字,但显然如果我省略逗号,整个代码都不起作用。

3 个答案:

答案 0 :(得分:11)

plt.plot会返回所绘制的Line2D个对象的列表,即使您只绘制一行也是如此。

该逗号正在将单个值解压缩到line

a, b = [1, 2]
a, = [1, ]

答案 1 :(得分:7)

plot方法将包含有关图中每一行信息的对象作为列表返回。在python中,您可以使用逗号扩展列表的元素。例如,如果您绘制了两行,则可以执行以下操作:

line1, line2 = plt.plot(x,y,'-',x,z,':')

line1对应x,y,而line2对应x,z。在您的示例中,只有一行,因此您需要使用逗号来指示它展开单元素列表。你所拥有的相当于

line = plt.plot(x,y,'-')[0]

line = ply.plot(x,y,'-')
line = line[0]

如果省略逗号,则代码应该有效,只是因为您没有使用line。在您的简单示例中,plt.plot(x,y,'-')就足够了。

答案 2 :(得分:2)

函数的返回值是一个包含一个项的元组或列表,这个语法将元组/列表中的值“解包”成一个简单的变量。