Matplotlib

From wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Using the pyplot functions only until now.

import matplotlib.pyplot as plt
Get the pyplot library. We assume this is done in all examples on this page.
plt.figure(2)
Initialize a new figure. figure(1) is initialized by default.
plt.subplot(211)
Create 1st subplot in figure(1) (212 is the 2nd subplot in figure(1). Return an 'AxesSubplot' object.
211 : Split the figure in 2, figure(1) subplot 1
The subplot can be specified as 2,1,1 too which comes in handy when you have to generate subplots on the fly.
fig,ax = plt.subplots()
Return Figure and AxeSubPlot object. Same as:
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(array)
Create the graphical object from the values in the array. Show the graph if your environment (e.g. jupyter) supports it.
When you do more plots without changing figure or subplot the result will be added to the current figure.
plt.legend()
Add a legend to the plot. Default legend is the label, specify an alternative legend text as list.
plt.ylim(min,max)
Fix the y-axis (xlim for the x-axis)
plt.show()
Show the current figure.
plt.savefig('plot.png')
Save the plot on file

Show the image:

firefox plot.png
eog plot.png
shotwell plot.png

Selfexplaning example code:

plt.plot(array)
plt.title('Set the graph title')
plt.suptitle('Set the graph super title')
plt.xlabel('Set the x label')
plt.ylabel('Set the y label')
plt.show()

With subplots, more lines and legends

ax =  plt.subplot(111)
lineA = ax.plot(array,label='Alabel')
lineB = ax.plot(array,label='Blabel')
ax.legend()

Formatting

plt.plot(x,y,format)
Draw lines
plt.bar(x,y,format)
Draw bars
plt.scatter(x,y,format)
Draw points

The 'x' and 'format' arguments are optional. 'x' and 'y' are lists that specify respectively the X-axis and the Y-axis. When only a labeled list like numpy arrays or pandas Series is provided the index makes the X, the values the Y.

The next argument defines the format as <colorchar><format> [1].

Formatting strings
Format Meaning
b- Blue Solid line, the default
r-- Red Dashed line
b: Blue Dotted line
r. Red Dots
g-. Green dashes and dots
gb Green Squares
y^ Yellow Triangles
yo Yellow Balls

Runtime errors

If you see errors like this in your uwsgi logfile (can be in deamon.log too)

uwsgi: Matplotlib created a temporary config/cache directory at /tmp/matplotlib-nmvqnrki because the default path (/var/www/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.

You can fix this by setting the MPLCONFIGDIR environment variable before you import matplotlib

os.environ['MPLCONFIGDIR'] = '/var/tmp'
import matplotlib