[PYTHON] Richten Sie die Größe der Farbleiste an der Matplotlib aus

Was ist das

Beim Erstellen eines Diagramms mit matplotlib ragt der Farbbalken aus dem Diagramm heraus und ist umständlich. Ich werde Ihnen zeigen, wie Sie die Farbbalken im Diagramm ausrichten.

Verschiedene Methoden

1: Normal zeichnen

colorbar1.py


import numpy
import matplotlib.pyplot

x = numpy.arange(10)
y = numpy.arange(10)
X, Y = numpy.meshgrid(x, y)
Z = X**2. + Y**2.

fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111)
im = ax.imshow(Z, interpolation='none')
fig.colorbar(im)

fig.savefig('colorbar1.png')

colorbar1.png

Ein Beispiel, bei dem die Höhe des Hauptdiagramms und des Farbbalkens zufällig gleich waren.

2: Normal plotten (sorry Version)

colorbar2.py


import numpy
import matplotlib.pyplot

x = numpy.arange(15)
y = numpy.arange(10)
X, Y = numpy.meshgrid(x, y)
Z = X**2. + Y**2.

fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111)
im = ax.imshow(Z, interpolation='none')
fig.colorbar(im)

fig.savefig('colorbar2.png')

colorbar2.png

Sobald das Seitenverhältnis des Hauptdiagramms zusammenbricht, ragt der Farbbalken nach oben und unten heraus. traurig. .. ..

3: Verwenden Sie mpl_toolkits.axes_grid1

colorbar3.py


import numpy
import matplotlib.pyplot
import mpl_toolkits.axes_grid1

x = numpy.arange(15)
y = numpy.arange(10)
X, Y = numpy.meshgrid(x, y)
Z = X**2. + Y**2.

fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111)
divider = mpl_toolkits.axes_grid1.make_axes_locatable(ax)
cax = divider.append_axes('right', '5%', pad='3%')
im = ax.imshow(Z, interpolation='none')
fig.colorbar(im, cax=cax)

fig.savefig('colorbar3.png')

colorbar5.png

Das häufigste Beispiel im Netz. Verwendung von make_axes_locatable und append_axes in mpl_toolkits.axes_grid1. Das ist die Lösung. Es war gut.

4: Wenn Sie jedoch die Projektion angeben, ...

colorbar4.py


import numpy
import matplotlib.pyplot
import mpl_toolkits.axes_grid1

x = numpy.arange(15)
y = numpy.arange(10)
X, Y = numpy.meshgrid(x, y)
Z = X**2. + Y**2.

fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111, projection='polar')
divider = mpl_toolkits.axes_grid1.make_axes_locatable(ax)
cax = divider.append_axes('right', '5%', pad='3%')
im = ax.imshow(Z, interpolation='none')
fig.colorbar(im, cax=cax)

fig.savefig('colorbar4.png')

colorbar6.png

Die Farbleiste wird nicht angezeigt! ?? Weil type (cax) matplotlib.projections.polar.PolarAxes ist. append_axes () hat kein Projektionsargument und scheint die Projektion von ax so zu verwenden, wie sie ist. Ist es möglich, die Projektion irgendwie zu ändern? .. ..

5: Ändern Sie die Cax-Position selbst

colorbar4.py


import io
import numpy
import matplotlib.pyplot

x = numpy.arange(15)
y = numpy.arange(10)
X, Y = numpy.meshgrid(x, y)
Z = X**2. + Y**2.

fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111)
im = ax.imshow(Z, interpolation='none')
cax = fig.colorbar(im)

fig.savefig(io.BytesIO())

ax_pos = ax.get_position()
cax_pos0 = cax.ax.get_position()
cax_pos1 = [cax_pos0.x0, ax_pos.y0, cax_pos0.x1 - cax_pos0.x0, ax_pos.y1 - ax_pos.y0]
cax.ax.set_position(cax_pos1)

fig.savefig('colorbar5.png')

colorbar9.png

Ich konnte die Position von ax mit get_position () ermitteln und mit set_position () von cax vertikal ausrichten. Da ax.get_position () jedoch eine Spezifikation (?) Hat, die erst aktualisiert wird, wenn fig.savefig () ausgeführt wird, wird fig.savefig () zweimal aufgerufen. Diese Methode wird in fig.savefig verwendet (bbox_inches = 'tight').

Recommended Posts

Richten Sie die Größe der Farbleiste an der Matplotlib aus
Erhöhen Sie die Schriftgröße des Diagramms mit matplotlib
Über die Größe der Punkte in Matplotlib
Richten Sie die Farbleiste mit matplotlib an der Figur aus
Die Basis der Graphentheorie mit Matplotlib-Animation
Visualisieren Sie das Verhalten des Sortieralgorithmus mit matplotlib
Richten Sie die Version von chromedriver_binary aus
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
Ändern Sie den Stil von matplotlib
Passen Sie das Verhältnis mehrerer Zahlen mit der Rasterspezifikation von Matplotlib an
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Stellen wir uns die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen vor
Ich habe die Grundoperation von matplotlib in Jupyter Lab geschrieben
Erhöhen Sie die Benutzeroberfläche von MyPaint
Erweitern Sie später die Festplattengröße von Fedora CoreOS, das mit OVA bereitgestellt wird
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Passen Sie den Abstand zwischen den Figuren mit Matplotlib an
Überprüfen Sie die Existenz der Datei mit Python
Stellen Sie die Farbe der xticklabels individuell mit matplotlib ein
Die dritte Nacht der Runde mit für
Tipps: Vergleich der Größe von drei Werten
Zeigen Sie Markierungen über dem Rand mit matplotlib an
Die zweite Nacht der Runde mit für
Überprüfen Sie die Dateigröße mit du -sh *
Zählen Sie die Anzahl der Zeichen mit Echo
Nehmen Sie allgemeine Einstellungen mit der Unterzeichnung von matplotlib vor
[Python] So legen Sie die Position und Größe der Fensteranzeige von matplotlib fest
Stellen Sie die Behälterbreite mit dem Histogramm von Matplotlib und Seaborn klar und ordentlich ein
So weisen Sie der Matplotlib-Farbleiste mehrere Werte zu
Die Geschichte des tiefen Lernens mit TPU
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Informationen zur X-Achsen-Notation des Balkendiagramms von Matplotlib
[Python] Grenzachse des 3D-Graphen mit Matplotlib
2016 Todai Mathematik mit Python gelöst
Ändern Sie die Schriftgröße der Legende in df.plot
Zeichentipps mit matplotlib auf der Serverseite
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Ein Liner, der die Farben von Matplotlib auflistet
Beseitigen Sie die Unannehmlichkeiten von QDock Widget mit PySide
Fordern Sie den Turm von Hanoi mit Wiederholungen + Stapel heraus
Schreiben Sie den Namen des Tags mit dem Namespace in lxml neu
Füllen Sie die Breite des Jupyter-Notizbuchs, um den Browser zu füllen
Animation mit matplotlib
Prognostizieren Sie die zweite Runde des Sommers 2016 mit scikit-learn
Japanisch mit Matplotlib
Entleere den Inhalt der Redis-Datenbank mit Lua
Finden Sie den Tag nach Datum / Uhrzeit heraus
Code zum Überprüfen des Betriebs von Python Matplot lib
Animation mit matplotlib
Richten Sie die Matplotlib-Diagrammfarben an ähnlichen Farben aus (Farbkarte).
Histogramm mit Matplotlib
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Konvertieren Sie den Zeichencode der Datei mit Python3