我正在浏览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,'-')
)之后的逗号是什么意思吗?
我认为这是一个错字,但显然如果我省略逗号,整个代码都不起作用。
答案 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)
函数的返回值是一个包含一个项的元组或列表,这个语法将元组/列表中的值“解包”成一个简单的变量。