Matplotlib数据可视化:图片展示与保存

简介: Matplotlib数据可视化:图片展示与保存
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模块实现。


# 使用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(1,2,2)
ax2.imshow(img)
plt.show()


640.png


可以设置关闭坐标轴:


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


640.png


imshow()方法中提供了众多参数以供个性化得展示图片,但我更建议使用pillow等专业的图片处理库先对图片进行处理,然后交由imshow()方法进行展示,以下是使用imshow方法显示灰度图片:


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

640.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
plt.show()

640.png


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


640.png


这时候,在本地打开图片如下所示:


640.png


value= np.arange(6) ** 2
category = range(len(value))
fig = plt.figure(figsize=(8, 4))
# 垂直柱状图
ax1 = fig.add_subplot(121)
ax1.set_title('图1 垂直柱状图')
ax1.bar(x=category, height=value)
# 垂直柱状图
ax2 = fig.add_subplot(122)
ax2.set_title('图2 水平柱状图')
ax2.barh(y=category, width=value)
fig.savefig(r"bar_img.png", transparent=True) # 
plt.show()


640.png


保存后的本地图片bar_img.png如下所示:


640.png

相关文章
|
15小时前
|
数据可视化 数据处理 Python
Python数据可视化:Matplotlib库的使用与实战
Python数据可视化:Matplotlib库的使用与实战
5 0
|
13天前
|
数据可视化 BI 索引
【Python】—— matplotlib数据可视化
【Python】—— matplotlib数据可视化
|
13天前
|
数据可视化 Linux API
【Python】—— 如果使用matplotlib做数据可视化
【Python】—— 如果使用matplotlib做数据可视化
|
13天前
|
数据采集 Web App开发 数据可视化
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
|
13天前
|
数据可视化 数据挖掘 定位技术
Python 基于 Matplotlib 实现数据可视化(二)
Python 基于 Matplotlib 实现数据可视化(二)
31 0
|
13天前
|
数据可视化 数据挖掘 开发者
Python 基于 Matplotlib 实现数据可视化(一)
Python 基于 Matplotlib 实现数据可视化
26 0
|
13天前
|
数据可视化 Python
Matplotlib动画效果制作:让数据可视化更生动
【4月更文挑战第17天】本文介绍了如何使用Python的Matplotlib库创建动态数据可视化动画。通过`animation`模块的`FuncAnimation`类,可以实现数据随时间变化的动态展示。基础动画制作涉及创建Figure对象、定义更新帧的函数,然后调用`FuncAnimation`。文章还分享了自定义动画速度、循环播放、添加标题和标签的方法,以及处理多个动态对象、应用条件逻辑和创建交互式动画的高级技巧。通过这些方法,可以提升数据可视化的生动性和吸引力。
|
13天前
|
数据采集 数据可视化 算法
利用Matplotlib进行复杂数据可视化
【4月更文挑战第17天】本文介绍了如何使用Python的Matplotlib库进行复杂数据可视化,包括数据预处理(如清洗、降维)、定制图表(选择图表类型、调整样式和布局、添加注释)以及交互式可视化。通过实例展示了如何使用PCA进行降维并绘制散点图,以及如何增强图表的可读性。文章强调了在复杂数据可视化中,预处理和定制化的重要性,并提到了交互式功能以提升用户体验。
|
13天前
|
数据可视化 搜索推荐 数据挖掘
Matplotlib入门:数据可视化基础
【4月更文挑战第17天】这篇文章是Matplotlib的入门教程,介绍了如何使用Python的Matplotlib库进行数据可视化。内容包括Matplotlib的基本概念、安装与导入、绘制线图、定制图形标题和标签、以及散点图、柱状图和饼图的绘制。通过本文,读者可以掌握数据可视化的基础,为进一步探索Matplotlib的高级功能打下基础。
|
13天前
|
数据可视化 数据挖掘 API
数据可视化秘籍:用Matplotlib和Seaborn创建洞察力图表
【4月更文挑战第12天】本文介绍了Python中的数据可视化库Matplotlib和Seaborn,它们是数据分析中的强大工具。Matplotlib是基础绘图库,提供面向对象的API,可绘制多种图表。Seaborn基于Matplotlib,提供更美观和易用的界面,支持复杂的数据可视化技术。文中展示了如何使用这两个库创建线图、散点图、条形图、饼图和直方图,以帮助理解数据并展示发现。