Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Description
I would like to start using the matplotlib OO interface more, as I would prefer to use this when interactive plotting is not needed. It it slightly faster, and behaves more intuitively in terms of reference counting (pyplot keeps a reference to each figure, meaning that if figures are not closed by pyplot, memory goes out of control).
The reason I don't use it is because it's not easy to remember all the set-up of the canvas and figure:
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvasfrom matplotlib.figure import Figurefig = Figure()canvas = FigureCanvas(fig)ax = fig.add_subplot(1, 1, 1)ax.scatter(np.random.random(10), np.random.random(10))fig.savefig('test.png')
So I was wondering whether it would be possible to makeFigure
more intelligent in terms of canvas? The 'ideal' API in my mind would be:
from matplotlib.figure import Figurefig = Figure()ax = fig.add_subplot(1, 1, 1)ax.scatter(np.random.random(10), np.random.random(10))fig.savefig('test.png')
i.e. I want the figure to just use the default backend (since this is set at the root level of matplotlib,not pyplot). So I would expect the following to work:
import matplotlibmatplotlib.use('Agg')from matplotlib.figure import Figurefig = Figure()ax = fig.add_subplot(1, 1, 1)ax.scatter(np.random.random(10), np.random.random(10))fig.savefig('test.png')
and to use the non-interactive Agg backend.
Is this something that has been considered before?