Ich habe ein Problem herauszufinden, wie man Matplotlib erzwingt, um eine Legende hinzuzufügen, wo ich will.Matplotlib globale Legende für viele Unterplots
Die Zahlen i zur Zeit wie folgt aussehen haben:
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()
Allerdings würde Ich mag platzieren die Legende:
ich diese 2 ausgelagerten Grundstück mit dem folgenden Skript erzeugen auf der linken Seite des allerersten Teilplots oder auf der rechten Seite des letzten Teilplots in der ersten Zeile.
Ich kann dies mit einer if line == 0
bla bla tun, aber das Problem ist, wie Sie in den Plots ich angehängt, dass zum Beispiel die letzte Handlung nur blaue Daten enthält, daher nur die blaue Legende zeigen wird. Ich möchte auch eine vollständige Legende (rot und blau) an den gleichen Ort legen. Ich weiß nicht einmal, wo vorher blaue und rote Parzellen liegen.
Ist das möglich?