2016-03-24 12 views
2

Ich möchte ein NumPy-Array mit imshow in matplotlib plotten und es als JPEG-Bild speichern. Leider gelingt es mir nicht, Ränder/Abstände/Ränder aus dem Bild zu entfernen.Ränder von einer Matplotlib-Figur entfernen

Mein Code:

plt.imshow(np.arange(20).reshape(5,4)) ; 
plt.axis('off') 
plt.savefig('test.jpg', bbox_inches='tight', pad_inches=0, facecolor='black') 

ich alle Empfehlungen befolgt habe, die ich hier auf Stackoverflow finden konnte, aber keiner von ihnen würde helfen, uneben weißen Ränder zu entfernen (Ich habe sie in dieser Figur schwarz) unten zu sehen:

enter image description here

+0

hat Antwort # 1 Ihr Problem gelöst? – welch

Antwort

0

Einstellung pad_inches = -1 für mich gelöst (als png zu speichern).

ich die pad_inches vermuten = 0 wurde als "Falsey" interpretiert und ignoriert

+0

Leider entfernt dies auch Teile des Bildes. –

0

Wie es in dieser Antwort beschrieben wurde: https://stackoverflow.com/a/26610602/265289, ist es wichtig, auch zu nennen:

fig.axes.get_xaxis().set_visible(False) 
fig.axes.get_yaxis().set_visible(False) 

neben pad_inches=0. Dadurch wird der zusätzliche Platz links und unten im Bild entfernt.