Heim >Backend-Entwicklung >Python-Tutorial >Wie teile ich einen einzelnen Farbbalken über mehrere Matplotlib-Unterplots hinweg?

Wie teile ich einen einzelnen Farbbalken über mehrere Matplotlib-Unterplots hinweg?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-11 21:00:24199Durchsuche

How to Share a Single Colorbar Across Multiple Matplotlib Subplots?

Gemeinsamer Farbbalken für mehrere Unterplots in Matplotlib

Beim Erstellen mehrerer Unterplots in Matplotlib kann es wünschenswert sein, einen gemeinsamen Farbbalken für alle anzuzeigen die Plots, um ein einheitliches Farbschema und eine einheitliche Referenzierung zu gewährleisten. Dies kann besonders nützlich sein, wenn Sie die Werte und Muster in verschiedenen Unterdiagrammen vergleichen.

Das Dilemma

Ein häufiges Problem beim Teilen eines Farbbalkens ist die Autokorrelation der einzelnen Farbbalken Ändern der Größe, um sowohl den Plot als auch den Farbbalken innerhalb des Begrenzungsrahmens des Unterplots unterzubringen. Dies kann zu ungleichmäßig großen Unterdiagrammen führen, die inkonsistent erscheinen.

Lösung: Trennen der Farbleiste

Die Lösung für dieses Problem besteht darin, eine separate Achse für die Farbleiste zu erstellen. Diese Achse wird dann verwendet, um die Farbleiste unabhängig von den Plots anzuzeigen, was mehr Kontrolle über ihre Größe und Position gibt.

Um diesen Ansatz zu implementieren, folgen Sie diesen Schritten:

  1. Verwenden Sie subplots_adjust Funktion, um Platz für den Farbbalken in der Gesamtfigur zu schaffen. Dies geschieht, indem die rechte Seite der Figur als Bruchteil der Breite der Figur angegeben wird, normalerweise etwas unter 1,0, um etwas Spielraum zu lassen.
  2. Erstellen Sie mit add_axes eine separate Unterplotachse für die Farbleiste. Dieser Unterplot sollte rechts von den Hauptachsen positioniert werden.
  3. Verwenden Sie die Funktion „colorbar“, um den Farbbalken in der separaten Achse zu erstellen, und geben Sie die relevante Achse im Parameter „cax“ an.
  4. Verstecken Sie die Achse Linien- und Häkchenmarkierungen auf dem Farbbalken-Unterdiagramm, um den Eindruck eines eigenständigen Farbbalkens zu erwecken.

Hier ist ein Beispielcode, der dies demonstriert Der Ansatz:

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=2, ncols=2)
for ax in axes.flat:
    im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)

fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(im, cax=cbar_ax)

plt.show()

Dieser Code erstellt vier Unterplots und platziert einen einzelnen Farbbalken rechts neben den Unterplots, wie im nebenstehenden Bild gezeigt. Der Farbbalken teilt das Farbschema mit den Unterplots und seine Größe und Position sind unabhängig von den Unterplots.

Durch die Befolgung dieser Schritte ist es möglich, einen einzelnen Farbbalken effektiv über mehrere Unterplots hinweg zu teilen, wodurch Konsistenz gewährleistet und das Ergebnis verbessert wird Präsentation der Daten.

Das obige ist der detaillierte Inhalt vonWie teile ich einen einzelnen Farbbalken über mehrere Matplotlib-Unterplots hinweg?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn