我正在尝试创建一个图例,它将包含它对应的线的颜色和标签。我当前的代码正在绘制图例,但只绘制标签的第一个字母(D而不是DL 11)。我想知道如何才能让我的情节停止截断标签。我希望将来能够添加更多的线条和相应的颜色/标签。任何帮助将不胜感激。谢谢
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条答案
按热度按时间oxcyiej71#
你遇到了一个有趣的解包问题。
要么
或
会得到想要的结果。
要了解它为什么这样做,请参阅https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes/_axes.py#L422上的代码
调用
plt.legend(('DL11'))
相当于调用plt.legend('DL11')
,这福尔斯len(args) == 1
的情况,然后它将字符串压缩到行列表中->生成标签'D',因为您只有一行。不要认为这是一个bug,但它是微妙的。
vq8itlhq2#
我相信pyplot期待一个传奇人物的列表。对于一个项目清单,像你的,只是
我猜pyplot.legend('DL11')获取列表的第一项,即'D'。
希望它能帮助