軸、凡例、白パディングを削除する方法 質問する

軸、凡例、白パディングを削除する方法 質問する

画像にカラーマップを適用し、軸、ラベル、タイトルなど、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')

ここに画像の説明を入力してください

おすすめ記事