matplotlib 2d line line,= plot comma含义

use*_*838 10 python tuples matplotlib line 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()
Run Code Online (Sandbox Code Playgroud)

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

tac*_*ell 11

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

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

a, b = [1, 2]
a, = [1, ]
Run Code Online (Sandbox Code Playgroud)


Set*_*ton 7

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

line1, line2 = plt.plot(x,y,'-',x,z,':')
Run Code Online (Sandbox Code Playgroud)

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

line = plt.plot(x,y,'-')[0]
Run Code Online (Sandbox Code Playgroud)

要么

line = ply.plot(x,y,'-')
line = line[0]
Run Code Online (Sandbox Code Playgroud)

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