I have a matplotlib Figure embedded in a QtAggFigureCanvas (PyQt4) with titles and axis labels (example shown below).
I implemented a button to save the figure to a png file. The figure was created with:
self.plkDpi = 100
self.plkFigure = Figure(dpi=self.plkDpi)
...
self.plkAxes = self.plkFig.add_subplot(111)
...
self.plkAxes.set_xlabel(...)
self.plkAxes.set_ylabel(...)
self.plkAxes.set_title(...)
When I hit my save button, the following code is executed:
self.plkFig.savefig('tmp.png', bbox_inches='tight', dpi=self.plkDpi)
For some reason, the axes and plot title are omitted from the final plot. But they are not cropped - there is a bounding black box around the figure that is just blank (see below)
No matter what I try, changing figsize, dpi, bounding box, etc. I cannot get the figure to save with the axis labels.
Please, take a look at this link: Black background behind a figure's labels and ticks, only after saving figure but not in Python Interactive view (VS Code with Jupyter functionality)?.
It seems plt.savefig() overwrites plot parameters. So you must define them again. Try this: plt.savefig('yourfilenamehere.png', facecolor='w'). This will set the borders in white.
Best regards,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With