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, axes = plt.subplots(4, 3, figsize=(8, 4), tight_layout=True) for row in range(4): for col in range(3): image_name = os.path.join(r'./jupyter/matplotlib/images', str(index)+'.jpg') img = plt.imread(image_name) axes[row, col].imshow(img) axes[row, col].axis('off') index += 1 plt.show()
2 保存圖片?
當我們使用matplotlib完成作圖后,難免有需要將圖表保存到本地的需求,這時候就可以使用savefig()方法實作,savefig()方法主要引數如下:
- fname:保存后圖片名
- dpi:像素
- quality:用大于1小于100的標量表示圖片質量
- facecolor:前景色
- edgecolor:邊框顏色
- format:檔案格式
- transparent:是否透明,當沒有設定前景色和邊框顏色時,如果transparent值為True保存為png格式時為透明
index = 1 fig, axes = plt.subplots(4, 3, figsize=(8, 4), tight_layout=True) for row in range(4): for col in range(3): image_name = os.path.join(r'./jupyter/matplotlib/images', str(index)+'.jpg') img = plt.imread(image_name) axes[row, col].imshow(img) axes[row, col].axis('off') index += 1 fig.savefig('save_img.jpg', facecolor='grey', edgecolor='red') plt.show()
這時候,在本地打開圖片如下所示:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/176803.html
標籤:Python
上一篇:Python爬蟲框架Scrapy的安裝與正確使用方法
下一篇:Python基礎篇_實體練習1
