Vokabelbuch. Viel nachdrucken, weil es schwierig ist, jedes Mal zu suchen. Es gibt eine ursprüngliche URL.
[matplotlib.pyplot.colorbar] (https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.colorbar.html) [Qiita @ skotaro: Eine Geschichte, die denjenigen gewidmet ist, die dies durch Zerlegen der Farbleiste von Matplotlib herausgefunden haben oder die keine Probleme mehr mit der Anpassung der Farbleiste haben möchten.] (https://qiita.com/skotaro/items/01d66a8c9902a766a2c0)
fig.add_axes
Wird mit der Option cax =
angegeben.
fig = plt.figure(figsize=(8,5))
ax = fig.add_axes((0.05, 0.15, 0.9, 0.8))
im = ax.imshow(np.random.random((10, 20)), cmap='jet')
cax = fig.add_axes((0.05, 0.05, 0.9, 0.08))
plt.colorbar(im, orientation='horizontal', cax=cax)
make_axes_locatable
Die Art und Weise, wie der Farbbalken gezeichnet wird, ist dieselbe wie oben, nur die Art und Weise, wie Achsen erstellt werden, wird geändert.
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
#Platz rechts schaffen
cax = divider.new_horizontal(size="2%", pad=0.05)
fig.add_axes(cax)
# OR
cax = divider.append_axes('right', '5%', pad='3%')
plt.colorbar(im, cax=cax)
Qiita @ termoshtt: Richten Sie die Farbleiste an der Abbildung mit matplotlib aus
Wenn Sie jedoch eine Projektion für ax angeben, funktioniert dies nicht.
Qiita @ nishimuraatsushi: Richten Sie die Größe der Farbleiste an der Matplotlib aus
plt.figure(figsize=(8, 0.5))
norm = mcolors.DivergingNorm(vcenter=0.0, vmin=-5, vmax=5)
im = ax.imshow(np.array([[0,1]]), cmap='bwr', norm=norm)
plt.gca().set_visible(False)
cax = plt.axes([0.1, 0.2, 0.8, 0.6])
cb = plt.colorbar(im, orientation='horizontal', cax=cax)
[stackoverflow: Standalone colorbar (matplotlib)] (https://stackoverflow.com/questions/16595138/standalone-colorbar-matplotlib)
Der obige Code wird einmal mit imshow
→ gezeichnet und dann Axes
für den Farbbalken definiert und so weiter.
--Speichern Sie diese Farbleiste alleine → Bearbeiten mit pptx usw.
--Erstellen Sie eine Funktion, die Achsen übergibt, um einen Farbbalken und ein Bild (im
im obigen Code) als Argumente zu zeichnen
In diesem Fall ist dies ausreichend. Das letztere Beispiel:
def draw_coloarbar(ax, im):
return plt.colorbar(im, orientation='horizontal', cax=ax)
fig = plt.figure(figsize=(8, 4))
ax = fig.add_axes((0.05, 0.05, 0.9, 0.9))
im = ax.imshow(np.array(np.random.random((10, 20))), cmap='jet')
cax = fig.add_axes([0.1, 0.45, 0.8, 0.1])
draw_coloarbar(cax, im)
In einer Funktion, die kein Bild als Argument übergibt, ist jedoch eine temporäre "Imshow" erforderlich
Wenn Sie eine Funktion erstellen, die nur den Farbbalken in den angegebenen "Achsen" zeichnet (nach einer temporären "Imshow"), unterscheidet sich die Methode zum Festlegen der Position:
def draw_coloarbar2(ax):
norm = mcolors.DivergingNorm(vcenter=0.0, vmin=-5, vmax=5)
im = ax.imshow(np.array([[0,1]]), cmap='bwr', norm=norm)
ax.set_visible(False)
return plt.colorbar(im, orientation='horizontal', #cax=ax) # cax=In diesem Fall wird die Farbleiste nicht angezeigt
ax=ax, fraction=1.0)
fig = plt.figure(figsize=(8, 4))
ax = fig.add_axes((0.05, 0.05, 0.9, 0.9))
im = ax.imshow(np.array(np.random.random((10, 20))), cmap='jet')
cax = fig.add_axes([0.1, 0.45, 0.8, 0.1])
draw_coloarbar2(cax)
In diesem Fall muss die Position mit "ax =" anstelle von "cax =" angegeben werden.
Der Unterschied in der Bedeutung dieser Argumente wird im Link oben auf der Seite beschrieben.
Bruch =
ist ein Argument darüber, wie viel der angegebenen Achsen für die Farbleiste verwendet werden soll.
Aspekt =
plt.colorbar(aspect=20) #dünn
plt.colorbar(aspect=50) #dick
[stackoverflow: How to decrease colorbar WIDTH in matplotlib?] (https://stackoverflow.com/questions/33443334/how-to-decrease-colorbar-width-in-matplotlib)
Extend =
, um Dreiecke an beiden Enden der Farbleiste hinzuzufügenplt.colorbar(extend='both') #Dreieck an beiden Enden
Verwenden Sie "cbar.set_ticks ()" für die Position der Skala und "cbar.set_ticklabels ()" für die Zeichenfolge der Skala.
[Akira Takeshimas Webseite: Farbleiste] (http://hydro.iis.u-tokyo.ac.jp/~akira/page/python/contents/plot/general/colorbar.html) [matplotlib: pylab_examples example code: colorbar_tick_labelling_demo.py] (https://matplotlib.org/examples/pylab_examples/colorbar_tick_labelling_demo.html)
Beachten Sie, dass sich die aufrufende Methode zwischen Ticks und Ticklabels unterscheidet.
ticks = cbar.get_ticks()
ticklabels = [ticklabel.get_text() for ticklabel in cbar.ax.get_xticklabels()]
Selbst wenn ich nur Ticklabels ändere, ärgere ich mich darüber, dass "set_ticks () aufgerufen worden sein muss" Das gleiche wird als "cbar.set_ticks (ticks)" angegeben.
Wenn Sie beispielsweise der Farbleiste eine Einheit hinzufügen möchten:
#obenstehendes-5 bis 5 Farbbalken als Balken
ticks = cbar.get_ticks() # [-4. -2. 0. 2. 4.]
ticklabels = [ticklabel.get_text() for ticklabel in cbar.ax.get_xticklabels()]
# ['−4', '−2', '0', '2', '4']
ticklabels[-1] += ' [unit]'
cbar.set_ticks(ticks)
cbar.set_ticklabels(ticklabels)
cbar.ax.tick_params(labelsize=10)
[stackoverflow: Change fontsize of colorbars in matplotlib] (https://stackoverflow.com/questions/40184696/change-fontsize-of-colorbars-in-matplotlib)
Recommended Posts