I'm building a small graphing utility using Pandas and MatPlotLib to parse data and output graphs from a machine at work.
When I output the graph using
plt.show()
I end up with an unclear image that has legends and labels crowding each other out like so.
However, expanding the window to full-screen resolves my problem, repositioning everything in a way that allows the graph to be visible.
I then save the graph to a .png like so
plt.savefig('sampleFileName.png')
But when it saves to the image, the full-screen, correct version of the plot isn't saved, but instead the faulty default version.
How can I save the full-screen plt.show() of the plot to .png?
I hope I'm not too confusing.
Thank you for your help!
The method you use to maximise the window size depends on which matplotlib backend you are using. Please see the following example for the 3 most common backends:
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2], [1,2])
# Option 1
# QT backend
manager = plt.get_current_fig_manager()
manager.window.showMaximized()
# Option 2
# TkAgg backend
manager = plt.get_current_fig_manager()
manager.resize(*manager.window.maxsize())
# Option 3
# WX backend
manager = plt.get_current_fig_manager()
manager.frame.Maximize(True)
plt.show()
plt.savefig('sampleFileName.png')
You can determine which backend you are using with the command matplotlib.get_backend()
. When you save the maximized version of the figure it will save a larger image as desired.