Saving a matplotlib/networkx figure without margins
Try plt.savefig("figure.png", bbox_inches="tight")
.
Edit: Ah, you didn't mention you were using networkx (although now I see it's listed in a tag). bbox_inches="tight"
is the way to crop the figure tightly. I don't know what networkx is doing, but I imagine it's setting some plot parameters that are adding extra space to the axes. You should look for a solution in networkx rather than matplotlib. (It may be, for instance, that networkx is adding the space inside the axes, not the figure; what does it look like if you remove that axis('off')
call?)
Use the following:
plt.margins(0.0)
add the codes below to control plot limits before saving.
try different values of cut
, like from 1.05 to 1.50, until you see fit.
# adjust the plot limits
cut = 1.05
xmax= cut*max(xx for xx,yy in pos.values())
ymax= cut*max(yy for xx,yy in pos.values())
plt.xlim(0,xmax)
plt.ylim(0,ymax)