Wie kann man in Matplotlib nur die Größe des „Zeichnungs“-Bereichs korrigieren (Titel und Beschriftungen ignorieren)?Python

Python-Programme
Guest
 Wie kann man in Matplotlib nur die Größe des „Zeichnungs“-Bereichs korrigieren (Titel und Beschriftungen ignorieren)?

Post by Guest »

Ich erstelle Diagramme für eine Forschungsarbeit mit Pythons Matplotlib und möchte, dass alle Diagramme für den „inneren“ Datenbereich (wo das Diagramm oder Bild tatsächlich gezeichnet wird) genau die gleiche Größe haben. Standardmäßig legt figsize die Gesamtabmessungen der Figur fest, einschließlich Rändern für Titel, Achsenbeschriftungen, Teilstrichbeschriftungen, Farbbalken usw. Wenn ich also eine Imshow mit Titel/Beschriftungen und eine andere ohne Titel/Beschriftungen habe, ändert sich der tatsächlich zeichnbare Bereich – d. h. Der Bereich, in dem die Daten gerendert werden, hat zwischen den beiden Abbildungen nicht die gleiche Größe.
Gibt es eine Möglichkeit, den Datenbereich auf eine feste Abmessung festzulegen (z. B. 2 x 2 Zoll). ) unabhängig davon Titel, Beschriftungen oder andere umgebende Texte/Legenden? Im Idealfall möchte ich sicherstellen, dass, wenn ich Titel oder Achsenbeschriftungen aus einem Plot entferne, der Datenbereich die gleiche Größe wie in einem anderen Plot mit Titeln/Beschriftungen behält.
Irgendwelche Vorschläge oder Codebeispiele wären sehr dankbar. Vielen Dank!
Beispiele:

Code: Select all

## No title, axis labels, or colorbar
fig, ax = plt.subplots(figsize=(4, 2))
ax.imshow(np.sin(np.linspace(0, 10, 100)).reshape(-1, 1),
aspect='auto',
cmap='Spectral')
plt.tight_layout()
plt.show()
Image

Code: Select all

## Same plot as above with title, axis labels, and colorbar
fig, ax = plt.subplots(figsize=(4, 2))
im = ax.imshow(np.sin(np.linspace(0, 10, 100)).reshape(-1, 1),
aspect='auto',
cmap='Spectral')
ax.set_title('Sine Wave', fontsize=16, fontfamily='monospace')
ax.set_xlabel('Time', fontsize=16, fontfamily='monospace')
ax.set_ylabel('Amplitude', fontsize=16, fontfamily='monospace')
plt.colorbar(im, ax=ax, aspect=3)
plt.tight_layout()
plt.show()
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post