python - 如何在 matplotlib 中为已绘制的线设置标签?

标签 python matplotlib plot legend axis-labels

在我的代码中我已经执行了

ax.plot(x, y, 'b.-', ...)

并且需要能够在事后为相应的行设置标签,以达到和我一样的效果

ax.plot(x, y, 'b.-', label='lbl', ...)

有没有办法在 Matplotlib 中做到这一点?

最佳答案

如果在创建时抓取 line2D 对象,则可以使用 line.set_label() 设置标签:

line, = ax.plot(x, y, 'b.-', ...)
line.set_label('line 1')

如果你不这样做,你可以从Axes中找到line2D:

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()

enter image description here

关于python - 如何在 matplotlib 中为已绘制的线设置标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624379/

相关文章:

r - 对(): Specifying axes limits of the subpanels

Python:Selenium 无法在 UDOO 上找到空闲端口

python - 我不明白 Python 中的负边界切片。这应该如何工作?

python - 制作 Pandas 系列的直方图

python - matplotlib中 "axes"和 "axis"之间的区别?

r - 偏差和分数残差图

python - 检查python类属性

python - 每秒更新 GTK+ MenuItem 倒计时,并定期调用函数

python - 如何使用一个图例制作 MxN 饼图并在 Matplotlib 中删除 y 轴标题

python - Matplotlib:创建两个分别与两个 y 轴一致的子图