pyplot图例标签被截断

时间:2013-07-31 19:08:36

标签: python matplotlib legend

我正在尝试创建一个图例,其中包含与其对应的线条和标签的颜色。我当前的代码是绘制图例,但只绘制标签的第一个字母(D而不是DL11)。我想知道如何让我的情节停止截断标签。我希望将来能够添加更多行和相应的颜色/标签。任何帮助将不胜感激。谢谢

from numpy import *
import matplotlib.pyplot as plt
import pylab


data = loadtxt("/home/***")
d, tno1, qno1 = data[:,1], data[:,2], data[:,3]                         
d, tno1, qno1 = loadtxt("/home/***", usecols = (1,2,3), unpack=True)


plt.plot(tno1, qno1, label='DL11')
plt.legend( ('DL11') )
plt.show()

2 个答案:

答案 0 :(得分:2)

你遇到了一个有趣的无包装问题。

要么

 plt.legend()

 plt.legend(('DL11',)) # <- note the comma

将获得所需的结果。

要了解其执行方式,请参阅https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes/_axes.py#L422

上的代码

调用plt.legend(('DL11'))相当于调用属于plt.legend('DL11')案例的len(args) == 1,然后将其字符串拉到行列表中 - &gt;生成标签'D',因为你只有一行。

不要认为这是一个错误,但它很微妙。

答案 1 :(得分:0)

我相信pyplot期待一系列传说。对于像您这样的单项列表,只需

pyplot.legend(['DL11'])

我的猜测是pyplot.legend('DL11')获取列表的第一项,即'D'。

希望有所帮助