我使用matplotlib在python2.7中得到一个具有多个轨迹的图形。我得到这个数字作为我的代码的输出:

但是,正如您所看到的,每个轨迹的标题都与相应的颜色线不对齐。我使用了legend的选项,但没有找到解决方案。
你有什么想法吗?
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
liste = range(1,13)
labels = ['3-3','3-4','3-5','3-6','4-3','4-4',
'4-5','4-6','5-3','5-4','5-5','5-6',
'6-3','6-4','6-5','6-6']
plt.figure(1)
plt.subplot(2,1,1)
for cnt, j in enumerate(labels):
a1 = range(100) # iter
a2 = np.random.randint(10,size=[100]) # dnn
a3 = np.ones((100)) # optimal
if cnt == 0:
plt.plot(a1,a3,label='BS', color='blue')
plt.plot(a1, np.divide(a3,a3), color='blue')
title_font = {'size':'11', 'color':'black', 'weight':'normal',
'verticalalignment':'bottom'}
plt.plot(a1,a2,label=j, color='red')
plt.xlabel('episode')
plt.ylabel('cost')
plt.grid(True)
lgd=plt.legend(bbox_to_anchor=(0., 1.0, 1.0, 0.102),
loc=3, ncol=len(liste), mode="expand", borderaxespad=0.)
plt.show()发布于 2018-04-02 15:06:12
图例句柄和标签不适合“图例”框。在删除mode="expand"标签时,您可能会看到这一点。
要获得图例条目占用的空间较少,请使用handlelength、handletextpad和columnspacing,并在合适的范围内播放参数。如果情况仍然不是这样,则需要使用更少的列。将ncols设置为较低的数字。例如:
lgd=plt.legend(bbox_to_anchor=(0., 1.02, 1.0, 0.102),
handlelength=0.9, handletextpad=0.3,columnspacing=0.7,
loc=3, ncol=9, mode="expand", borderaxespad=0.)一个人会得到一个与所有传说条目相匹配的图像。

https://stackoverflow.com/questions/49612763
复制相似问题