Livre de vocabulaire. Réimprimer beaucoup car il est difficile de rechercher à chaque fois. Il existe une URL d'origine.
[matplotlib.pyplot.colorbar] (https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.colorbar.html) [Qiita @ skotaro: Une histoire dédiée à ceux qui l'ont découvert en disséquant la barre de couleurs de matplotlib, ou qui ne veulent plus avoir de problèmes pour ajuster la barre de couleurs] (https://qiita.com/skotaro/items/01d66a8c9902a766a2c0)
fig.add_axes
Spécifié avec l'option cax =
.
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
La façon de dessiner la barre de couleur est la même que ci-dessus, seule la façon de créer des axes est modifiée.
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
#Faites de la place à droite
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: Alignez la barre de couleurs sur la figure avec matplotlib
Cependant, si vous spécifiez la projection pour ax, cela ne fonctionne pas.
Qiita @ nishimuraatsushi: Alignez la taille de la barre de couleurs avec matplotlib
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)
Le code ci-dessus est dessiné une fois avec ʻimshow → puis définissez ʻAxes
pour la barre de couleur, et ainsi de suite.
--Enregistrer cette barre de couleur seule → Modifier avec pptx etc. --Créez une fonction qui passe Axes pour dessiner une barre de couleur et une image (ʻim` dans le code ci-dessus) comme arguments.
Dans ce cas, cela suffit. Le dernier exemple:
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)
Cependant, dans une fonction qui ne passe pas une image comme argument = un ʻimshow` temporaire est requis
Lors de la création d'une fonction qui dessine uniquement la barre de couleur sur les ʻAxes spécifiés (après avoir fait un ʻimshow
temporaire), la méthode de spécification de la position est différente:
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=Si tel est le cas, la barre de couleur ne sera pas affichée
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)
Dans ce cas, il est nécessaire de spécifier la position avec ʻax = ʻau lieu decax =
.
La différence de signification de ces arguments est détaillée dans le lien en haut de la page.
fraction =
est un argument sur la quantité d'axes spécifiés à utiliser pour la barre de couleurs.
plt.colorbar(aspect=20) #mince
plt.colorbar(aspect=50) #épais
[stackoverflow: How to decrease colorbar WIDTH in matplotlib?] (https://stackoverflow.com/questions/33443334/how-to-decrease-colorbar-width-in-matplotlib)
plt.colorbar(extend='both') #Triangle aux deux extrémités
Utilisez cbar.set_ticks ()
pour la position de l'échelle et cbar.set_ticklabels ()
pour la chaîne de caractères de l'échelle.
[Page Web d'Akira Takeshima: Barre de couleurs] (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)
Notez que la méthode d'appel diffère entre les ticks et les ticklabels.
ticks = cbar.get_ticks()
ticklabels = [ticklabel.get_text() for ticklabel in cbar.ax.get_xticklabels()]
Même quand je ne change que les ticklabels, je me fâche avec set_ticks () doit avoir été appelé. La même chose est spécifiée comme
cbar.set_ticks (ticks)`.
Par exemple, si vous souhaitez ajouter une unité à la barre de couleurs:
#ce qui précède-5 à 5 barres de couleur comme cbar
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