有人可以解释一下这种行为吗?
import matplotlib.pyplot as plt
plt.plot(x=[0.05, 0.1, 0.15], y=[102, 211, 393])
plt.show()
import matplotlib.pyplot as plt
plt.plot([0.05, 0.1, 0.15], [102, 211, 393])
plt.show()
也就是说,在不明确指定 x=
和 y=
的情况下,pyplot 可以正常工作。但是,这与 the documentation 中的行为不同。 。嗯,文档没有明确使用 x=
或 y=
,但它给出了 plot
的签名为 plot(x, y)
。因此,应该允许命名参数,并产生相同的结果,对吗?
最佳答案
我认为困惑来自于签名的差异。这是一个Python问题。
考虑
def func1(x,y):
print(x,y)
def func2(*args):
print(args)
您可以使用位置参数调用它们中的每一个。
func1(1,2)
func2(1,2)
您还可以使用命名参数调用第一个函数。
func1(x=1, y=2)
但是,您无法使用命名参数调用第二个函数,因为 x
和 y
尚未定义。
func2(x=1, y=2)
导致错误。
从plot
的文档中可以看出,它使用了第二种定义函数的方式,
matplotlib.pyplot.plot(*args, **kwargs)
我认为 matplotlib 文档需要假设有一些基本的 Python 理解,但如果可以做一些事情来澄清它,请随时提出改进建议。
关于python - 当传递命名参数时,matplotlib 不会绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285820/