Ich möchte eine Legende erstellen, die alle Unterplots in einer Abbildung überlagern kann. Wenn ich framealpha=1.0
einstelle, dann deckt es Sachen auf seinem Nebenplot ab, aber ich brauche es, um "auf" die Daten in anderen Nebenstellen auch zu liegen. Beachten Sie, dass ich die roten Linien hinter der Legende haben muss; bei 'oben' spreche ich von der z-Dimension, nicht von ihrer y-Position. Hiermatplotlib: Legende über anderen Unterplots erscheinen
ein Beispiel:
import matplotlib.pyplot as plt
import numpy as np
x1 = np.random.rand(25)
y1 = np.random.rand(25)
x2 = np.random.rand(25)
y2 = np.random.rand(25)
f, axes = plt.subplots(1,2)
axes[0].plot(x1,y1,'b-',label='data 1 blah blah blah this is a wide legend that should sit top of BOTH subplots')
axes[1].plot(x2,y2,'r-')
axes[0].axis('off')
axes[1].axis('off')
leg = axes[0].legend(bbox_to_anchor=(0.5, .8), loc=2, fontsize=8, frameon=True, framealpha = 1.0)
rect = leg.get_frame()
rect.set_facecolor([0.9,0.9,0.9])
leg.set_zorder(100)
plt.show()
DANK!
Mit "oben" meine ich, dass die Legende im Beispiel über den roten Linien liegen sollte. Die Zorder ist die Sache, die ich über den anderen liegen möchte. Ich habe meine Frage zur Klärung bearbeitet. – NPMitchell
Sorry, ich habe am Anfang die Frage missverstanden und danke für die klarere Frage. Jetzt habe ich die Antwort geändert, um auf Ihre spezielle Frage zu antworten, dass die Legende oben auf jeder Unterhandlung steht. – albertoql