2016-06-16 27 views
1

'hot'カラーマップを使用して、イメージとして保存する2次元の行列、たとえばimgを持っています。次のコード画像を保存する際にカラーバーを追加するにはどうすればよいですか?

import matplotlib.pyplot as plt 

plt.imsave("out.jpg", img, cmap = 'hot') 

私はこれを行うことができます。しかし、カラーバーをイメージと共に保存したいので、各ピクセルの値が大体どのようなものかを知ることが重要です。私は、右側に多くのスペースがあるとしましょう。

私はそれは、plt.imshow()を使用して図を作成plt.colorbar()を使用してカラーバーを追加し、plt.savefig()を使用してそれを保存することで、「簡単な」方法で行うことができることを知っているが、それはまた、数字の周りに「グレー領域」保存し、カラーバーが別々に表示されます。また、スケーリングが必要な場合は、Figureのサイズに問題があります。カラーバーを画像上に表示し、結果の出力画像をマトリックスと同じサイズにします。

また、誰かが画像としてマトリックスを視覚化することについての他の提案がある場合(値が限定されていない場合)、それは高く評価されます。

答えて

2

あなたが望むようにイメージを保存する前に、イメージにカラーバーを追加する方法がわかりません。可能であるかどうかもわかりません。しかし、私はあなたの画像をプロットし、カラーバーを追加し、保存する方法を提供することができますが、それはあなたが望むようにフォーマットします。私は、これはそれをテストするために何かをせずに動作することを保証することはできませんが、それはあなたが望むもののために正しい方向にする必要があり、次の

import matplotlib.pyplot as plt 

fig = plt.figure(figsize = (W,H)) # Your image (W)idth and (H)eight in inches 
# Stretch image to full figure, removing "grey region" 
plt.subplots_adjust(left = 0, right = 1, top = 1, bottom = 0) 
im = plt.imshow('out.jpg') # Show the image 
pos = fig.add_axes([0.93,0.1,0.02,0.35]) # Set colorbar position in fig 
fig.colorbar(im, cax=pos) # Create the colorbar 
plt.savefig('out.jpg') 

のようなものを試してみてください。

関連する問題