python - 为什么我收到额外的标签文本而不是我放入的实际标签?

标签 python matplotlib

假设

import matplotlib.pyplot as plt

如果我从 documentation 执行此操作

line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend([line_up, line_down], ['Line Up', 'Line Down'])

如果我将 Line 2D(Line 1) 传递给 plt.legend() 而不仅仅是标签本身,我会得到它,例如第 1 行。为什么会这样?

这是一个大约一年前的脚本,我不记得这是一年前出现的!?


来 self 的脚本:

relevant_line,  = plt.plot(x, relevant_normal_combination, label="Relevant phrases distr.")
# ...
plt.legend([relevant_line, nonrelevant_line,relevant_mu, nonrelevant_mu], loc = 1)

给我:

enter image description here

最佳答案

文档示例和您的代码之间的区别在于传递给 legend 的列表数量(文档中两个,代码中一个)

让我们看下面的例子:

line_no_legend = plt.plot([1,2],[1,1],c="k")
line_up, = plt.plot([1,2,3], label='Line 2',color="b")
line_down, = plt.plot([3,2,1], label='Line 1',color="g")

plt.legend([line_up, line_down], ['Line Up', 'Line Down'])  #left
plt.legend([line_up, line_down])                            #middle
plt.legend(handles=[line_up, line_down])                    #right

legends behaviour

左边是文档,有两个列表:句柄和新标签(字符串)

中间一个仅用一个列表调用,并且颜色和标签错误。这是因为它需要一个字符串列表,而不是句柄列表(请参阅 legend doc )

正确的方法通过指定 handles= 解决了该问题。

关于python - 为什么我收到额外的标签文本而不是我放入的实际标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037971/

相关文章:

javascript - Django Angular 数据库集成

python - 从 python 脚本在 gnome-terminal 中打开选项卡

python - ValueError:无效的终结点:https://s3..amazonaws.com

python - 在多个 matplotlib.pyplot 子图上创建图例单击事件

python - 由于交互问题,matplotlib 不再工作

python - 用python绘制不同颜色的圆圈

python - 如何在Python中定义泛型变量(语法问题)

python - 使用 f2py 链接库

python - Pyplot - 标签图

python - 圆柱坐标图?