The global state version was created that way to be easy to use interactively, and to be a familiar interface for Matlab users, but in larger programs and scripts the points outlined here favour using the Axes interface. The only way to access the depth of all features of matplotlib.One consistent/familiar interface instead of switching between two.It is easier to transition to a situation with multiple subplots.It is refactorable - you can put away some of the code into a function that takes an Axes object, and does not rely on global state.# global state version - modifies "current" figure The alternative would be to use the global state interface, the plt.plot etc functionality: import matplotlib.pyplot as plt Using plt.subplots() is popular because it gives you an Axes object and allows you to use the Axes interface to define plots. Whereas, with plt.subplot(), one will have to specify individually for each axis which can become cumbersome. However, plt.subplots() is preferred because it gives you easier options to directly customize your whole figure # for example, sharing x-axis, y-axis for all subplots can be specified at onceįig, ax = plt.subplots(2,2, sharex=True, sharey=True) # (2,1,1) indicates total number of rows, columns, and figure number respectively fig = plt.figure() # create the canvas for plotting Whereas, you can use plt.subplot() if you want to add the subplots separately. # create a subplot with 2 rows and 1 columns A figure can be understood as a canvas where you paint your sketch. One can use plt.subplots() to make all their subplots at once and it returns the figure and axes (plural of axis) of the subplots as a tuple. So just remember to keep the construction of the list as the same as the subplots grid we set in the figure.Īs a supplement to the question and above answers there is also an important difference between plt.subplots() and plt.subplot(), notice the missing 's' at the end. Of course, if you use parameters as (nrows=1, ncols=4), then the format should be: fig, = plt.subplots(nrows=1, ncols=4) So let's try this again: fig,, ] = plt.subplots(nrows=2, ncols=2) The 1st one must be a figure object, and the other one should be a group of subplots objects. It raises a error, but no worry, because we now see that plt.subplots() actually returns a tuple with two elements. ValueError: not enough values to unpack (expected 4, got 2) Then as we know, the fig, ax = plt.subplots() returns a tuple, let's try fig, ax1, ax2, ax3, ax4 = plt.subplots(nrows=2, ncols=2) firstly. The following question is that what if I want more subplots in the figure?Īs mentioned in the Doc, we can use fig = plt.subplots(nrows=2, ncols=2) to set a group of subplots with grid(2,2) in one figure object.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |