VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Matplotlib数据可视化(7):图片展示与保存

 

 

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()