Ich habe mit Matplot angefangen und einige grundlegende Plots verwaltet, aber jetzt fällt es mir schwer herauszufinden, wie ich einige Dinge tun kann, die ich jetzt brauche :(
Meine eigentliche Frage ist, wie man einen globalen Titel und eine globale Legende auf eine Figur mit Nebenhandlungen setzt.
Ich mache 2x3-Unterzeichnungen, in denen ich viele verschiedene Grafiken in verschiedenen Farben habe (ungefähr 200). Um (die meisten) von ihnen zu unterscheiden, habe ich so etwas geschrieben
def style(i, total):
return dict(color=jet(i/total),
linestyle=["-", "--", "-.", ":"][i%4],
marker=["+", "*", "1", "2", "3", "4", "s"][i%7])
fig=plt.figure()
p0=fig.add_subplot(321)
for i, y in enumerate(data):
p0.plot(x, trans0(y), "-", label=i, **style(i, total))
# and more subplots with other transN functions
(irgendwelche Gedanken dazu? :)) Jede Nebenhandlung hat die gleiche Stilfunktion.
Jetzt versuche ich, einen globalen Titel für alle Nebenhandlungen und eine globale Legende zu erhalten, die alle Stile erklärt. Außerdem muss ich die Schrift klein machen, damit sie auf alle 200 Stile passt (ich brauche keine völlig eindeutigen Stile, aber zumindest einen Versuch).
Kann mir jemand bei der Lösung dieser Aufgabe helfen?
quelle
Antworten:
Globaler Titel : In neueren Versionen von matplotlib kann die Figure.suptitle () -Methode verwendet werden von
Figure
:Alternativ (basierend auf dem Kommentar von @Steven C. Howell unten (danke!)) Verwenden Sie die Funktion matplotlib.pyplot.suptitle () :
quelle
import matplotlib.pyplot as plt
, könnte der Befehl einfach wieplt.figure(); plt.suptitle('Title centered above all subplots'); plt.subplot(231); plt.plot(data[:,0], data[:,1]);
folgt eingegeben werden ...Zusätzlich zur orbeckst-Antwort möchte man möglicherweise auch die Nebenhandlungen nach unten verschieben. Hier ist ein MWE im OOP-Stil:
gibt:
quelle
Für Legenden können Etiketten wie folgt verwendet werden. Legendlabels sind die gespeicherten Plotlinien. modFreq sind die Namen der tatsächlichen Beschriftungen, die den Plotlinien entsprechen. Dann ist der dritte Parameter der Ort der Legende. Zuletzt können Sie alle Argumente eingeben, die ich hier unten habe, aber hauptsächlich die ersten drei benötigen. Außerdem sollten Sie dies tun, wenn Sie die Beschriftungen im Plot-Befehl richtig eingestellt haben. Rufen Sie einfach die Legende mit dem Standortparameter auf und finden Sie die Beschriftungen in jeder der Zeilen. Ich hatte besseres Glück, meine eigene Legende wie unten zu machen. Scheint in allen Fällen zu funktionieren, in denen der andere Weg nie richtig in Gang gekommen zu sein schien. Wenn Sie nicht verstehen, lassen Sie es mich wissen:
Sie können das Bein auch verwenden, um Schriftgrößen oder fast alle Parameter der Legende zu ändern.
Der im obigen Kommentar angegebene globale Titel kann durch Hinzufügen von Text über den angegebenen Link erfolgen: http://matplotlib.sourceforge.net/examples/pylab_examples/newscalarformatter_demo.html
quelle
suptitle
scheint der richtige Weg zu sein, aber für das, was es wert ist,figure
hat das einetransFigure
Eigenschaft, die Sie verwenden können:quelle