What is the difference between the Axes.plot()
and pyplot.plot()
methods? Does one use another as a subroutine?
It seems that my options for plotting are
line = plt.plot(data)
or
ax = plt.axes() line = ax.plot(data)
or even
fig = plt.figure() ax = fig.add_axes([0,0,1,1]) line = ax.plot(data)
Are there situations where it is preferable to use one over the other?
The matplotlib. pyplot is a collection of functions that make matplotlib work like MATLAB. Each pyplot function makes some change to a figure: e.g., creates a figure, creates a plotting area in a figure, plots some lines in a plotting area, decorates the plot with labels, etc.
MatPlotLib with PythonPlot − Plot helps to plot just one diagram with (x, y) coordinates. Axes − Axes help to plot one or more diagrams in the same window and sets the location of the figure.
Axis is the axis of the plot, the thing that gets ticks and tick labels. The axes is the area your plot appears in.
Plotting x and y points The plot() function is used to draw points (markers) in a diagram. By default, the plot() function draws a line from point to point. The function takes parameters for specifying points in the diagram. Parameter 1 is an array containing the points on the x-axis.
For drawing a single plot, the best practice is probably
fig = plt.figure() plt.plot(data) fig.show()
Now, lets take a look in to 3 examples from the question and explain what they do.
Takes the current figure and axes (if none exists it will create a new one) and plot into them.
line = plt.plot(data)
In your case, the behavior is same as before with explicitly stating the axes for plot.
ax = plt.axes() line = ax.plot(data)
This approach of using ax.plot(...)
is a must, if you want to plot into multiple axes (possibly in one figure). For example when using a subplots.
Explicitly creates new figure - you will not add anything to previous one. Explicitly creates a new axes with given rectangle shape and the rest is the same as with 2.
fig = plt.figure() ax = fig.add_axes([0,0,1,1]) line = ax.plot(data)
possible problem using figure.add_axes
is that it may add a new axes object to the figure, which will overlay the first one (or others). This happens if the requested size does not match the existing ones.
There is essentially no difference. plt.plot
will at some point (after making sure that there is a figure and an axes available to plot to) call the plot function from that axes instance.
So the main difference is rather at the user's side:
pyplot
.You may want to read the matplotlib usage guide.
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