In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl m ...
In [1]:
import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字體支持
除了作圖功能,matplotlib也提供本地圖片展示以及保存圖片的功能,這兩個通能通過imshow()方法和savefig()方法實現。
1 圖片展示¶
在使用imshow()展示圖片前,需要先將圖片讀取出來。讀取圖片可以通過pillow庫,也可以用matplotlib本身自帶的image模塊實現。
In [2]:# 使用pillow庫讀取圖片 img = Image.open(r"./jupyter/matplotlib/images/1.jpg") fig = plt.figure(figsize=(8, 4)) ax1 = fig.add_subplot(121) ax1.imshow(img) # 使用matplotlib自帶image庫讀取圖片 img = mpimg.imread(r"./jupyter/matplotlib/images/1.jpg") ax2 = fig.add_subplot(122) ax2.imshow(img) plt.show()
可以設置關閉坐標軸:
In [3]:img = mpimg.imread(r"./jupyter/matplotlib/images/1.jpg") fig = plt.figure(figsize=(4, 2)) ax1 = fig.add_subplot(111) ax1.imshow(img) ax1.axis('off') plt.show()
imshow()方法中提供了眾多參數以供個性化得展示圖片,但我更建議使用pillow等專業的圖片處理庫先對圖片進行處理,然後交由imshow()方法進行展示,以下是使用imshow方法顯示灰度圖片:
In [4]:img=Image.open(r"./jupyter/matplotlib/images/1.jpg") img = np.array(img) if img.ndim == 3: img2 = img[:,:,0] plt.subplot(321); plt.imshow(img) plt.subplot(322); plt.imshow(img, cmap = 'gray') # 無效 plt.subplot(323); plt.imshow(img2) plt.subplot(324); plt.imshow(img2, cmap = 'gray') # 灰度 plt.subplot(325); plt.imshow(img2, cmap = plt.cm.gray) # 與cmap ='gray'等效 plt.subplot(326); plt.imshow(img2, cmap = plt.cm.gray_r) # 反向灰度 plt.show()
顯示多張圖片:
In [5]:index = 1 fig