10

カラーバーのラベルを値の増加から減少に変更したいと思います。vmin経由でこれを実行しようとするとvmax、次のエラー メッセージが表示されます。

最小値は最大値以下でなければなりません

したがって、たとえば、カラーバーを左側の 20 から開始し、右側の 15 まで上げたいと思います。

これはこれまでのカラーバーのコードですが、この例では値が 15 から 20 になり、その順序を逆にしたいと思います。

cmap1 = mpl.cm.YlOrBr_r

norm1 = mpl.colors.Normalize(15,20)

cb1   = mpl.colorbar.ColorbarBase(colorbar1, cmap=cmap1, norm=norm1, orientation='horizontal')

cb1.set_label('magnitude')
4

2 に答える 2

15

以下に表示されているカラーバーは、概念実証として機能するカラーバーの例にすぎないため、実際のカラーバーとまったく同じではない可能性があります。

以下では、右に値が増加する、これに似たカラーバーがあると仮定します。

元のカラーバー

方法 1: x 軸を反転する

カラーバーの x 軸全体を反転します

x 軸を反転させたい場合、つまり x 軸の値が右に下がってカラーバーを「ミラー化」したい場合は、ColorbarBaseax属性を利用できます。

cb1   = mpl.colorbar.ColorbarBase(colorbar1,
                                  cmap=cmap1,
                                  norm=norm1,
                                  orientation='horizontal')
cb1.ax.invert_xaxis()

これにより、以下の出力が得られます。

x 軸が反転したカラーバー

colorbars を設定して ticklabels の数を変更することもできますlocator。ここではMultipleLocatorが使用されていますが、他の多くのロケーターも使用できます。

from matplotlib.ticker import MultipleLocator

cb1.locator = MultipleLocator(1) # Show ticks only for each multiple of 1
cb1.update_ticks()
cb1.ax.invert_xaxis() 

反転した x 軸と MultipleLocator を備えたカラーバー

方法 2: カスタムの目盛りラベルを使用する

カラーバーの向きを維持しながら、目盛りラベルの順序を逆にします

カラーバー自体の向きをそのままにして、目盛りラベルが表示される順序を逆にするだけの場合は、 メソッドset_ticksset_ticklabelsメソッドを使用できます。これは、以前のソリューションよりも「力ずく」のアプローチです。

cb1.set_ticks(np.arange(15, 21))
cb1.set_ticklabels(np.arange(20, 14, -1))

これにより、以下に示すカラーバーが得られます。色はそのままで、目盛りの位置と目盛りラベルのみが変更されていることに注意してください。

カスタム目盛り付きのカラーバー

于 2013-05-30T09:20:34.317 に答える