1. ホーム
  2. python

[解決済み] Matplotlib のプロット: 軸、凡例、空白を削除する

2022-02-19 17:06:02

質問

私はPythonとMatplotlibの初心者です。軸やラベル、タイトルなど、通常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)

図の軸の削除には成功しましたが、保存された図には白いパディングと実際の画像の周りに枠が表示されます。 これらを取り除くにはどうしたらよいでしょうか。ありがとうございます。

解決方法を教えてください。

私は、コマンド axis('off') は、各軸とボーダーを別々に変更するよりも、より簡潔に問題の1つを解決してくれます。ただし、ボーダーの周りにはまだ余白が残っています。追加 bbox_inches='tight'savefig コマンドでほぼ解決します。下の例では、残された空白がかなり小さくなっていますが、まだ存在していることがわかります。

matplotlibの新しいバージョンでは、このように bbox_inches=0 という文字列の代わりに 'tight' (via @episodeyang and @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')

<イグ