私は4 imshow
サブプロットを作成したいが、それらはすべて同じカラーマップを共有している。 Matplotlibは、マトリックスのエントリに応じてカラーマップ上のスケールを自動的に調整します。たとえば、私の行列の1つがすべて10のエントリーを持ち、もう1つのエントリーが5に等しいすべてのエントリを持ち、Greys
のカラーマップを使用すると、私のサブプロットの1つは完全に黒く、もう1つは完全に灰色になります。しかし、どちらも完全に黒くなってしまいます。すべてのサブプロットをカラーマップ上で同じ縮尺で共有するにはどうすればよいですか?同じカラーバーのImshowサブプロット
答えて
この権利を得るには、同じ強度スケールのすべての画像を持つ必要があります。そうでなければ、colorbar()
の色は無意味です。これを行うには、のvmin
とvmax
引数を使用し、それらの画像がすべて同じであることを確認してください。
例えば、表示したい値の範囲は、次を使用することができ、0から10に行く場合:
import pylab as plt
import numpy as np
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
subplot(1, 2, 1)
plt.imshow(my_image1, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.subplot(1, 2, 2)
plt.imshow(my_image2, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.colorbar()
2番目の軸が狭いのであまり美しくありません。代わりにhttp://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbarを参照してください。 –
@RuggeroTurra Trueですが、 = 'auto''となり、いずれの場合もサブプロットスペース(またはgridspecなど)を変更することで調整できます。受け入れられた答えでは、カラーバーをリンクすると、軸と同じ高さではありませんので、まだ調整が必要です。 – tiago
それはあなたが事前に知っていないのかもしれデータの範囲はわかりますが、どういう形であれ互換性があることがわかります。その場合、matplotlibに最初のプロットの範囲を選択させ、残りのプロットに対して同じ範囲を使用することができます。ここであなたがそれを行う方法があります。鍵は限界を得ることです。properties()['clim']
import numpy as np
import matplotlib.pyplot as plt
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
fig, axes = plt.subplots(nrows=1, ncols=2)
im = axes[0].imshow(my_image1)
clim=im.properties()['clim']
axes[1].imshow(my_image2, clim=clim)
fig.colorbar(im, ax=axes.ravel().tolist(), shrink=0.5)
plt.show()
最初のプロットの値の範囲が2番目のプロットの範囲よりも小さい場合、これはうまくいかないでしょう。 – naught101
合意。しかし、それは私が本文で説明したものです。これは、最良の範囲がわからないが、最初のプロットの自動範囲が残りのプロットの範囲に収まると仮定した場合に機能します。 –
- 1. Matplotlibを使用したカラーバーを使用したimshowサブプロットのアニメーション
- 2. Matplotlibサブプロット:imshow + plot
- 3. matplotlib:同じサイズのサブプロット?
- 4. カラーバーでサブプロットを調整する
- 5. 異なるカラーバーを持つサブプロット
- 6. 対称対数スケーリングでの複数のサブプロットの1つのカラーバー
- 7. Matlab:同じ図の2つの非連続カラーバーとカラーマップ
- 8. ログに同じカラーバーを持つ2つの画像を表示
- 9. imshowは同じ画像を複数回表示します
- 10. imshowの代わりにプロットに基づいてカラーバーをマッピングします
- 11. 複数のimshow-subplots、それぞれにカラーバーが付いています
- 12. すべてのサブプロットに同じ点を追加
- 13. 同じグラフに複数のサブプロットをプロットする
- 14. matlabのmatplotlib(python)とimshow()からimshow()関数を使って同じ画像を生成するには?
- 15. 同じ色とマーカーを持つ散布図サブプロット
- 16. カラーバーを縮小せずにサブプロットのx制限を調整する方法
- 17. 2つのmatplotlibのimshowプロットを同じカラーマップスケールに設定します。
- 18. サブプロット内のサブプロット - 2つの8x8サブプロット
- 19. ページ上のすべてのサブプロットのx軸を同じ長さにします
- 20. Matplotlib pandas dataframe散布図のサブプロットは同じ列に従います
- 21. 同じ時間軸を持つ2つのサブプロット間に縦線をプロットする
- 22. Python、tkinter、plot with 3つのgroup-byヒストグラムが同じサブプロットにあります
- 23. Matplotlibのサブプロットに共通のカラーバーを追加してその限界を一緒に変更する方法
- 24. アニメーションimshow
- 25. MATLABで複数の空間サブプロットに単一の代表的なカラーバーを追加する方法は?
- 26. カラーバーoffsetText(科学的なベース乗数)カラーバー
- 27. matplotlibカラーバーのトップラベル
- 28. Geopandasのカラーバー
- 29. matplotlibのカラーバーは
- 30. seaborn.kdeplotのカラーバー
この投稿にはあなたに役立つ回答があるようです。 http://stackoverflow.com/questions/3373256/set-colorbar-range-in-matplotlib – bserra
[Matplotlib 2 Subplots、1 Colorbar]の可能な複製(http://stackoverflow.com/questions/13784201/matplotlib-2- subplots-1-colorbar) –