Matplotlib 1.3.0,图例行和文字不匹配

时间:2013-08-30 07:25:35

标签: python python-2.7 matplotlib legend

在这种情况下,图例标签来自txt文件,末尾带有'\n'个字符。运行此代码段:

lines = np.array([[1,1],[2,2],[3,3]])
plt.rc('font', size=10.)
for i, line in enumerate(lines):
    plt.plot(range(2), line, label='line number ' + str(i) +'\n')
plt.ylim(0,4)
plt.legend()
plt.show()

Matplotlib 1.2.11.3.0中,您会得到不同的传说:

  • Matplotlib 1.2.1 enter image description here

  • Matplotlib 1.3.0 enter image description here

1 个答案:

答案 0 :(得分:1)

在Matplotlib 1.3.0中继续使用相同算法的解决方案很简单,只需在将图例标签传递给strip()之前添加plt.plot()调用:

label_from_txt_file = label_from_txt_file.strip()
plt.plot(range(2), line, label=label_from_txt_file)

它将删除'\n'字符并避免行/文字错位。