14

我正在浏览 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,'-'))后面的逗号是什么意思?我认为这是一个错字,但如果我省略逗号,显然整个代码都不起作用。

4

3 回答 3

14

plt.plot返回Line2D绘制对象的列表,即使您只绘制一行。

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

前任

a, b = [1, 2]
a, = [1, ]
于 2013-05-24T20:07:53.287 回答
9

plot方法以列表形式返回包含有关图中每条线的信息的对象。在 python 中,您可以用逗号扩展列表的元素。例如,如果你绘制两条线,你会这样做:

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

whereline1对应x,y, line2 对应x,z. 在您的示例中,只有一行,因此您需要逗号来告诉它展开一个 1 元素列表。你所拥有的相当于

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

或者

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

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

于 2013-05-24T20:08:31.143 回答
2

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

于 2013-05-24T20:08:53.877 回答