python 图例标注被截断

zwghvu4y  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(123)

我正在尝试创建一个图例,它将包含它对应的线的颜色和标签。我当前的代码正在绘制图例,但只绘制标签的第一个字母(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()
oxcyiej7

oxcyiej71#

你遇到了一个有趣的解包问题。
要么

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的情况,然后它将字符串压缩到行列表中->生成标签'D',因为您只有一行。
不要认为这是一个bug,但它是微妙的。

vq8itlhq

vq8itlhq2#

我相信pyplot期待一个传奇人物的列表。对于一个项目清单,像你的,只是

pyplot.legend(['DL11'])

我猜pyplot.legend('DL11')获取列表的第一项,即'D'。
希望它能帮助

相关问题