画像にカラーマップを適用し、軸、ラベル、タイトルなど、matplotlib によって自動的に追加されたものを使用せずに、結果の画像を書き出したいと思います。私が行ったことは次のとおりです。
def make_image(inputname,outputname):
data = mpimg.imread(inputname)[:,:,0]
fig = plt.imshow(data)
fig.set_cmap('hot')
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
plt.savefig(outputname)
図の軸は正常に削除されましたが、保存された図には白いパディングと実際の画像の周囲にフレームが表示されます。
どうすればそれら(少なくとも白いパッド)を削除できますか?
ベストアンサー1
のaxis('off')
この方法は、各軸と境界線を個別に変更するよりも簡潔に問題の 1 つを解決します。ただし、境界線の周りには空白が残ります。コマンドbbox_inches='tight'
に追加することでsavefig
、ほぼ目的を達成できます。以下の例では、残っている空白がはるかに小さくなっていますが、まだ存在していることがわかります。
matplotlib の新しいバージョンでは、bbox_inches=0
文字列の代わりにが必要になる場合があります'tight'
(@episodeyang および @kadrach 経由)
from numpy import random
import matplotlib.pyplot as plt
data = random.random((5,5))
img = plt.imshow(data, interpolation='nearest')
img.set_cmap('hot')
plt.axis('off')
plt.savefig("test.png", bbox_inches='tight')