【发布时间】:2016-09-07 12:07:52
【问题描述】:
我在弄清楚如何强制 matplotlib 在我想要的地方添加图例时遇到了一些问题。
我使用以下脚本生成这个 2 页图:
n = 1
trn = True
for i in diff.keys():
plt.subplot(8, 4, n)
plt.xlim([0, rounds + 1])
plt.locator_params(axis='y', nbins=5)
if PEPTIDE_KD[i] == 1e-2:
plt.plot(x_cord, [x[0] for x in diff[i]], 'ro--', label='asd')
plt.plot(x_cord, [x[1] for x in diff[i]], 'rv--', label='bsd')
else:
plt.plot(x_cord, [x[0] for x in diff[i]], 'bo--', label='asd')
plt.plot(x_cord, [x[1] for x in diff[i]], 'bv--', label='csd')
plt.title(i)
n += 1
if n == 33 and trn:
n = 1
trn = False
plt.suptitle('Ligand energies')
plt.locator_params(axis='y', nbins=5)
plt.subplots_adjust(hspace=0.35)
plt.show()
plt.legend(bbox_to_anchor=(-0.05, 1), loc=1)
plt.locator_params(axis='y', nbins=5)
plt.subplots_adjust(hspace=0.35)
plt.show()
但是我想将图例放在第一个子图的左侧,或第一行最后一个子图的右侧。
我可以用if line == 0 bla bla 来做到这一点,但问题是你可以在我附加的图中看到,例如最后一个图只包含蓝色数据,因此只会显示蓝色图例。我想在同一个地方放置一个完整的图例(红色和蓝色)。我什至不知道蓝色和红色的情节会放在哪里。
这可能吗?
【问题讨论】:
标签: python python-3.x matplotlib