我正在尝试创建一个图例,其中包含与其对应的线条和标签的颜色。我当前的代码是绘制图例,但只绘制标签的第一个字母(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()
答案 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'。
希望有所帮助