Usuwanie białych znaków wokół zapisanego obrazu w matplotlib
Muszę zrobić zdjęcie i zapisać je po pewnym procesie. Po wyświetleniu figura wygląda dobrze, ale kiedy zapisuję figurę, mam trochę wolnego miejsca wokół zapisanego obrazu. Próbowałem'tight'
opcja dlasavefig
metoda też nie działała. Kod:
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
fig = plt.figure(1)
img = mpimg.imread(path)
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()
Próbuję narysować podstawowy wykres, używając NetworkX na rysunku i zapisać go. Zdałem sobie sprawę, że bez wykresu działa, ale po dodaniu wykresu otrzymuję białą przestrzeń wokół zapisanego obrazu;
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("C:\\images\\1.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()