这是我Matplotlib
的python代码,我想绘制两行,第一行已成功,我想在此图中再添加一行,即y = x ^( - 0.56) ,所以我只需在它之后添加一个(x,y)对,代码返回错误:
lines = plt.loglog(x, y,basex=10,'ro',x,x**(-0.56),basex=10)
SyntaxError: non-keyword arg after keyword arg
有人可以帮忙怎么做?
答案 0 :(得分:4)
这是因为您使用第一个basex = 10作为默认参数,然后传递非默认参数。如果您确定您的函数需要这7个参数,那么删除第一个basex = 10.
如果您格式化代码,也可以看到错误:
>>> lines = matplotlib.loglog(x,<br>
... y,<br>
... basex=10,<br>
... 'ro',<br>
... x,<br>
... x**(-0.56),<br>
... 10<br>
... )<br>
File "<stdin>", line 4<br>
SyntaxError: non-keyword arg after keyword arg
错误清楚地显示了第4行的一些问题,原因是我在上面指定了。
答案 1 :(得分:2)
从你的参数列表中删除第一个basex=10
(这是你的关键字arg,它抱怨你之后有非关键字args)。
即
lines = plt.loglog(x, y,'ro',x,x**(-0.56),basex=10)
为了使其更明确,您还可以将其写为:
line1 = plt.loglog(x, y,'ro',basex=10)
line2 = plt.loglog(x,x**(-0.56),basex=10)
plt.show()