假设
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)
给我:
最佳答案
文档示例和您的代码之间的区别在于传递给 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
左边是文档,有两个列表:句柄和新标签(字符串)
中间一个仅用一个列表调用,并且颜色和标签错误。这是因为它需要一个字符串列表,而不是句柄列表(请参阅 legend doc )
正确的方法通过指定 handles=
解决了该问题。
关于python - 为什么我收到额外的标签文本而不是我放入的实际标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037971/