私は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. 複数のimshow-subplots、それぞれにカラーバーが付いています
- 2. すべてのサブプロットに同じ点を追加
- 3. 2つのmatplotlibのimshowプロットを同じカラーマップスケールに設定します。
- 4. Geopandasのカラーバー
- 5. matplotlibカラーバーのトップラベル
- 6. matplotlibのカラーバーは
- 7. カスタマイズmatplotlibののカラーバー
- 8. matplotlibの離散カラーバー
- 9. カラーバーeastoutside vs westoutside
- 10. Pyplotサブプロット
- 11. パンダのサブプロット
- 12. 3Dのimshow? (Python/Matplotlib)
- 13. matplotlibのオーバーレイimshowプロット
- 14. Imshow()サイズ制限
- 15. python matplotlib imshow()カスタムティックマーク
- 16. matplotlibのカラーバーの幾何学
- 17. matplotlib plot_surfaceコマンド用のカラーバー
- 18. matplotlibカラーバーの配置とサイズ
- 19. Matplotlib:複数のサブプロットから単一のサブプロットを取得する
- 20. Matplotlib imshowズーム機能?
- 21. matlabのサブプロット軸の変更
- 22. Matplotlib - サブプロットをサブプロットに追加しますか?
- 23. 2つのウェブサイト、同じURL、同じクッキー
- 24. 各サブプロットの回転軸テキスト
- 25. Matplotlib:quiverとimshowが重なっていますが、どのように2つのカラーバーを設定できますか?
- 26. 代わりに複数のカラーバー
- 27. matplotlibでカラーバーのボーダーカラーをカスタマイズする
- 28. matplotlib散布図の対数カラーバー
- 29. matplotlibカラーバーの範囲を設定する
- 30. サブプロット:上記サブプロットに基づいて、タイトルの長さ寸法とメインタイトル
この投稿にはあなたに役立つ回答があるようです。 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) –