ich benutze pyplot
. Ich habe 4 Nebenhandlungen. Wie stellt man einen einzigen Haupttitel über alle Nebenhandlungen? title()
setzt es über den letzten Subplot.
Wie kann man mit Pyplot einen einzigen Haupttitel über alle Nebenhandlungen setzen?
Jakob M.
unutbu
Verwenden pyplot.suptitle
oder Figure.suptitle
:
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
data=np.arange(900).reshape((30,30))
for i in range(1,5):
ax=fig.add_subplot(2,2,i)
ax.imshow(data)
fig.suptitle('Main title') # or plt.suptitle('Main title')
plt.show()
-
Arbeitet mit
suptitle
. Trotzdem habe ich deinen “schamlosen Hack” gesehen! 🙂– Jakob M.
15. August 2011 um 15:08 Uhr
-
Beachten Sie, es ist
plt.suptitle()
und nichtplt.subtitle()
. Ich habe das am Anfang nicht bemerkt und einen bösen Fehler bekommen! 😀– Dataman
10. Mai 2016 um 15:40 Uhr
Alexander McFarlane
Ein paar Punkte, die ich nützlich finde, wenn ich dies auf meine eigenen Plots anwende:
- Ich bevorzuge die Konsistenz der Verwendung
fig.suptitle(title)
stattplt.suptitle(title)
- Beim Benutzen
fig.tight_layout()
der Titel muss mit verschoben werdenfig.subplots_adjust(top=0.88)
- Siehe Antwort unten zu Schriftgrößen
Beispielcode entnommen aus Nebenhandlungen Demo in Matplotlib-Dokumenten und mit einem Mastertitel angepasst.
import matplotlib.pyplot as plt
import numpy as np
# Simple data to display in various forms
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
fig, axarr = plt.subplots(2, 2)
fig.suptitle("This Main Title is Nicely Formatted", fontsize=16)
axarr[0, 0].plot(x, y)
axarr[0, 0].set_title('Axis [0,0] Subtitle')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title('Axis [0,1] Subtitle')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title('Axis [1,0] Subtitle')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title('Axis [1,1] Subtitle')
# # Fine-tune figure; hide x ticks for top plots and y ticks for right plots
plt.setp([a.get_xticklabels() for a in axarr[0, :]], visible=False)
plt.setp([a.get_yticklabels() for a in axarr[:, 1]], visible=False)
# Tight layout often produces nice results
# but requires the title to be spaced accordingly
fig.tight_layout()
fig.subplots_adjust(top=0.88)
plt.show()
-
Einfach hinzufügen
figure.suptitle()
reicht nicht aus, da sich Titel von Nebenhandlungen mit Untertitel vermischen,fig.subplots_adjust(top=0.88)
ist gut.– Ich gehe meinen Weg
22. März 2019 um 2:28 Uhr
Wenn Ihre Nebenhandlungen auch Titel haben, müssen Sie möglicherweise die Größe des Haupttitels anpassen:
plt.suptitle("Main Title", size=16)
-
In Python 2.7 ist es Schriftgröße Anstatt von Größe.
plt.suptitle("Main Title", fontsize=16)
– Temak
11. Februar 2016 um 17:59 Uhr