在我的代码中,我已经执行了
ax.plot(x, y, 'b.-', ...)
并且需要能够在事后设置相应行的标签,以产生与我
相同的效果ax.plot(x, y, 'b.-', label='lbl', ...)
有没有办法在Matplotlib中执行此操作?
答案 0 :(得分:8)
如果您在创建对象时抓取line2D
对象,则可以使用line.set_label()
设置标签:
line, = ax.plot(x, y, 'b.-', ...)
line.set_label('line 1')
如果不这样做,您可以从line2D
找到Axes
:
ax.plot(x, y, 'b.-', ...)
ax.lines[-1].set_label('line 1')
注意,ax.lines[-1]
将访问创建的最后一行,因此如果您创建多行,则需要注意使用此方法设置标签的行。
一个最小的例子:
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1)
l,=ax.plot(range(5))
l.set_label('line 1')
ax.legend()
plt.show()