保存した画像の周りの空白を削除する 質問する

保存した画像の周りの空白を削除する 質問する

画像を撮影し、何らかの処理を行った後に保存する必要があります。図を表示すると問題なく表示されますが、図を保存すると、保存した画像の周囲に空白が表示されます。メソッド'tight'のオプションを試しましたがsavefig、どちらも機能しませんでした。コード:

import matplotlib.image as mpimg
import matplotlib.pyplot as plt

fig = plt.figure(1)
img = mpimg.imread("image.jpg")
plt.imshow(img)
ax = fig.add_subplot(1, 1, 1)

extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.savefig('1.png', bbox_inches=extent)

plt.axis('off') 
plt.show()

NetworkX を使用して図に基本的なグラフを描画し、保存しようとしています。グラフがなくても動作することがわかりましたが、グラフを追加すると、保存した画像の周囲に白いスペースが表示されます。

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_edge(1, 3)
G.add_edge(1, 2)
pos = {1:[100, 120], 2:[200, 300], 3:[50, 75]}

fig = plt.figure(1)
img = mpimg.imread("image.jpg")
plt.imshow(img)
ax = fig.add_subplot(1, 1, 1)

nx.draw(G, pos=pos)

extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.savefig('1.png', bbox_inches=extent)

plt.axis('off') 
plt.show()

ベストアンサー1

bbox_inches="tight"次のように設定することで、空白のパディングを削除できますsavefig

plt.savefig("test.png",bbox_inches='tight')

引数をbbox_inches文字列として入力する必要があります。おそらくこれが、これまで動作しなかった理由です。


重複の可能性がある:

Matplotlib プロット: 軸、凡例、空白の削除

matplotlib 図の余白を設定するにはどうすればいいですか?

matplotlib プロットの左右の余白を減らす

おすすめ記事