467 Stimmen

Wie man jedem Unterdiagramm einen Titel hinzufügt

Ich habe eine Abbildung, die viele Unterplots enthält.

fig = plt.figure(num=None, figsize=(26, 12), dpi=80, facecolor='w', edgecolor='k')
fig.canvas.set_window_title('Window Title')

# Gibt die Axes-Instanz zurück
ax = fig.add_subplot(311) 
ax2 = fig.add_subplot(312) 
ax3 = fig.add_subplot(313) 

Wie füge ich Titel zu den Unterplots hinzu?

fig.suptitle fügt einen Titel zu allen Grafiken hinzu und obwohl ax.set_title() existiert, fügt letzteres keinen Titel zu meinen Unterplots hinzu.

Vielen Dank für Ihre Hilfe.

Bearbeitung: Tippfehler zu set_title() korrigiert. Vielen Dank an Rutger Kassies

516voto

Jarad Punkte 15546

ax.title.set_text('Mein Plot Titel') scheint auch zu funktionieren.

fig = plt.figure()
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
ax1.title.set_text('Erster Plot')
ax2.title.set_text('Zweiter Plot')
ax3.title.set_text('Dritter Plot')
ax4.title.set_text('Vierter Plot')
plt.show()

matplotlib Titel zu Subplots hinzufügen

333voto

masteusz Punkte 3491

ax.set_title() sollte die Titel für separate Untergitter festlegen:

import matplotlib.pyplot as plt

data = [1, 2, 3, 4, 5]

fig = plt.figure()
fig.suptitle("Titel für gesamtes Diagramm", fontsize=16)
ax = plt.subplot(2, 1, 1)
ax.set_title("Titel für das erste Diagramm")
ax.plot(data)

ax = plt.subplot(2, 1, 2)
ax.set_title("Titel für das zweite Diagramm")
ax.plot(data)

plt.show()

Kannst du überprüfen, ob dieser Code für dich funktioniert? Vielleicht überschreibt etwas sie später?

64voto

JMDE Punkte 1005

Eine Kurzantwort unter der Annahme import matplotlib.pyplot as plt:

plt.gca().set_title('title')

wie zum Beispiel:

plt.subplot(221)
plt.gca().set_title('title')
plt.subplot(222)
etc...

Dann gibt es keine Notwendigkeit für überflüssige Variablen.

18voto

SAGET Shinji Punkte 181

Wenn Sie es kürzer machen möchten, könnten Sie schreiben :

import matplotlib.pyplot as plt
for i in range(4):
    plt.subplot(2,2,i+1).set_title(f'Subplot n°{i+1}')
plt.show()

Es macht es vielleicht weniger klar, aber Sie benötigen keine weiteren Zeilen oder Variablen.

14voto

JMDE Punkte 1005

Eine Lösung, die ich immer öfter verwende, ist diese:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)  # 1
for i, ax in enumerate(axs.ravel()):  # 2
    ax.set_title("Plot #{}".format(i))  # 3
  1. Erstellen Sie eine beliebige Anzahl von Achsen
  2. axs.ravel() wandelt Ihr 2-dimensionales Objekt in einen 1-dimensionalen Vektor im Reihenmajor-Stil um
  3. weist den Titel dem aktuellen Achsenobjekt zu

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X