In this post
This note is updated frequently without notice!
Import library
import matplotlib.pyplot as plt
Axes
Axes’ options,
# Hide the axis
plt.axis('off') # and 'on' to display it again
# Set the limit
plt.xlim(0, 3.5)
plt.ylim(0, 3.5)
# Axes' label
plt.xlabel('students')
plt.ylabel('mark')
Set equal 2 axes[ref] ,
matplotlib.axes.Axes.set_aspect('equal')
# get the current axes and apply the function
plt.gca().set_aspect()
Plots
plt.plot(X, y, 'ro') # red and 'o' points
Plot a photo
With grayscale and misc
from scipy import misc
img = misc.face(gray=True)
plt.imshow(img, cmap='gray', vmin=0, vmax=255)
plt.show()
With grayscale and custom file
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
fname = 'image.png'
image = Image.open(fname).convert("L")
# If you have an L mode image, that means it is a single channel image - normally
# interpreted as greyscale. The L means that is just stores the Luminance.
# It is very compact, but only stores a greyscale, not colour.
arr = np.asarray(image)
plt.imshow(arr, cmap='gray', vmin=0, vmax=255)
plt.show()
print(arr.shape)
If you meet Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers)
, use
plt.imshow(img.astype('uint8'))
Save figure to file
Using plt.savefig()
To be sure that plt.savefig()
[ref]
comes before plt.show()
. In the case you wanna use any time you want, just call plt.gcf()
to “get current figure” first. For example,[ref]
fig1 = plt.gcf() # get the current figure
plt.show() # show the plot
fig1.savefig('test.png', dpi=100)
Remark: There are the axes inside the exported photo (all are printed on notebook)!!
Using imageio
They export only the photo.
import imageio
# img = misc.face(gray=True)
# or
# img = np.asarray(Image.open('abc.jpg').convert("L"))
imageio.imwrite('filename.jpg', img) # save the file
If you meet Lossy conversion from float64 to uint8. Range […,…]. Convert image to uint8 prior to saving to suppress this warning
, use
imageio.imwrite('filename.jpg', img.astype(np.uint8))