技术文章
当前位置:首页 > Python技术文章 > python plt多个图在同一窗口显示代码

python plt多个图在同一窗口显示方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:630

这篇文章主要知识点是关于python、plt、多个图、同时显示、对Python中plt的画图函数详解 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python神经网络编程
Python神经网络编程高质量完整版
  • 类型:机器学习大小:11.5 MB格式:PDF出版:人民邮电出版社作者:塔里克·拉希德
立即下载

更多Python相关的学习资源可以参阅 Python电子书程序设计电子书 等栏目。

python plt多个图在同一窗口显示代码

python 读取并显示图片,用plt 同时显示多幅图像

##plt 同时显示多幅图像
import matplotlib.pyplot as plt
 
plt.figure()
plt.subplot(1,2,1)
plt.imshow(images[i])
plt.subplot(1,2,2)
plt.imshow(maskes[i])
plt.show()

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。

一、matplotlib

1. 显示图片

import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
 
lena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png
# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理
lena.shape #(512, 512, 3)
 
plt.imshow(lena) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()

2. 显示某个通道

# 显示图片的第一个通道
lena_1 = lena[:,:,0]
plt.imshow('lena_1')
plt.show()
# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:
plt.imshow('lena_1', cmap='Greys_r')
plt.show()
 
img = plt.imshow('lena_1')
img.set_cmap('gray') # 'hot' 是热量图
plt.show()
 

3. 将 RGB 转为灰度图

matplotlib 中没有合适的函数可以将 RGB 图转换为灰度图,可以根据公式自定义一个:

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
 
gray = rgb2gray(lena)    
# 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.imshow(gray, cmap='Greys_r')
plt.axis('off')
plt.show()

4. 对图像进行放缩

from scipy import misc
lena_new_sz = misc.imresize(lena, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸
plt.imshow(lena_new_sz)
plt.axis('off')
plt.show()

5. 保存图像

5.1 保存 matplotlib 画出的图像

该方法适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture。

plt.imshow(lena_new_sz)
plt.axis('off')
plt.savefig('lena_new_sz.png')

5.2 将 array 保存为图像

from scipy import misc
misc.imsave('lena_new_sz.png', lena_new_sz)

5.3 直接保存 array

读取之后还是可以按照前面显示数组的方法对图像进行显示,这种方法完全不会对图像质量造成损失

np.save('lena_new_sz', lena_new_sz) # 会在保存的名字后面自动加上.npy
img = np.load('lena_new_sz.npy') # 读取前面保存的数组

二、PIL

1. 显示图片

from PIL import Image
im = Image.open('lena.png')
im.show()

2. 将 PIL Image 图片转换为 numpy 数组

im_array = np.array(im)
# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝

3. 保存 PIL 图片

直接调用 Image 类的 save 方法

from PIL import Image
I = Image.open('lena.png')
I.save('new_lena.png')

4. 将 numpy 数组转换为 PIL 图片

这里采用 matplotlib.image 读入图片数组,注意这里读入的数组是 float32 型的,范围是 0-1,而 PIL.Image 数据是 uinit8 型的,范围是0-255,所以要进行转换:

import matplotlib.image as mpimg
from PIL import Image
lena = mpimg.imread('lena.png') # 这里读入的数据是 float32 型的,范围是0-1
im = Image.fromarray(np.uinit8(lena*255))
im.show()

5. RGB 转换为灰度图

from PIL import Image
I = Image.open('lena.png')
I.show()
L = I.convert('L')
L.show()

 

对Python中plt的画图函数详解

1、plt.legend

plt.legend(loc=0)#显示图例的位置,自适应方式
说明:

'best'   : 0, (only implemented for axes legends)(自适应方式)
'upper right' : 1,
'upper left' : 2,
'lower left' : 3,
'lower right' : 4,
'right'  : 5,
'center left' : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center'  : 10,

2、plt.figure

plt.figure(figsize=(14, 6), dpi=80)#设置绘图区域的大小和像素

3、plt.xticks

plt.xticks(new_year)#设置x轴的刻度线为new_year,new_year可以为数组

4、plt.xlabel

plt.xlabel('year')#x轴标签

5、plt.plot

plt.plot(number, color='blue', label="actual value")#将实际值的折线设置为蓝色

6、两个图分开

fig, axes = plt.subplots(2, 1, sharex=True,figsize=(10,10))
axes[0].plot(range (len(data20)),data20,'r')
axes[1].plot(range (len(data40)),data40,'b') 

7、画竖直线

plt.axvline(99, line, linewidth=4, color='r')#99表示横坐标

8、图片保存

plt.savefig('timeseries_y.jpg')

以上这篇对Python中plt的画图函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到python里dict变成list的实例方、 Python3结合Dlib实现人脸识别、 python字符串与url编码转换、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python opencv将特定颜色转换方法总结

下一篇:python如何引用其他py文件里的函数

展开 +

收起 -

相关电子书
学习笔记
网友NO.234653

解决Python plt.savefig 保存图片时一片空白的问题

更新 这里我会列出对本文的更新。 2017 年 9 月 28 日:修正几处错字,优化排版。 问题 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白。 import matplotlib.pyplot as plt""" 一些画图代码 """plt.show()plt.savefig("filename.png") 原因 其实产生这个现象的原因很简单:在 plt.show() 后调用了 plt.savefig() ,在 plt.show() 后实际上已经创建了一个新的空白的图片(坐标轴),这时候你再 plt.savefig() 就会保存这个新生成的空白图片。 解决 知道了原因,就不难知道解决办法了,解决办法有两种: 在 plt.show() 之前调用 plt.savefig(); import matplotlib.pyplot as plt""" 一些画图代码 """plt.savefig("filename.png")plt.show() 画图的时候获取当前图像(这一点非常类似于 Matlab 的句柄的概念): # gcf: Get Current Figure fig = plt.gcf() plt.show() fig1.savefig('tessstttyyy.png', dpi=100……

网友NO.420163

对python PLT中的image和skimage处理图片方法详解

用PLT比较轻量级,用opencv是比较重量级 import numpy as npfrom PIL import Imageif __name__ == '__main__': image_file = '/Users/mac/Documents/学习文档/机器学习/5.Package/son.png' height = 100 #假定写入图片的高度是100 img = Image.open(image_file) img_width, img_height = img.size #获取img的尺寸 width = 2 * height * img_width // img_height # 假定字符的高度是宽度的2倍,写入图片的高度是宽度的2倍 img = img.resize((width, height), Image.ANTIALIAS) #改变尺寸,将新定的宽度,高度重定img的size赋给img pixels = np.array(img.convert('L')) #转成灰度值喂给array,pixels是个存灰度值的数组 print(pixels.shape) print(pixels) chars = "MNHQ$OC?7!:-;. " #256色的不同通道浓淡,M代表0-15,N代表16-31 N = len(chars) step = 256 // N print(N) print step result = '' for i in range(height): for j in range(width): result += chars[pixels[i][j] // step] #像素点的值除以step是可以找到step这个像素点的位……

网友NO.804962

Python matplotlib通过plt.scatter画空心圆标记出特定的点方法

在用python画散点图的时候想标记出特定的点,比如在某些点的外围加个空心圆,一样可以通过plt.scatter实现 import matplotlib.pyplot as pltx = [[1, 3], [2, 5]]y = [[4, 7], [6, 3]]for i in range(len(x)): plt.plot(x[i], y[i], color='r') plt.scatter(x[i], y[i], color='b') plt.scatter(x[i], y[i], color='', marker='o', edgecolors='g', s=200) # 把 corlor 设置为空,通过edgecolors来控制颜色 效果图 以上这篇Python matplotlib通过plt.scatter画空心圆标记出特定的点方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.357957

对Python中plt的画图函数详解

1、plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明:'best' : 0, (only implemented for axes legends)(自适应方式)'upper right' : 1,'upper left' : 2,'lower left' : 3,'lower right' : 4,'right' : 5,'center left' : 6,'center right' : 7,'lower center' : 8,'upper center' : 9,'center' : 10, 2、plt.figure plt.figure(figsize=(14, 6), dpi=80)#设置绘图区域的大小和像素 3、plt.xticks plt.xticks(new_year)#设置x轴的刻度线为new_year,new_year可以为数组 4、plt.xlabel plt.xlabel('year')#x轴标签 5、plt.plot plt.plot(number, color='blue', label="actual value")#将实际值的折线设置为蓝色 6、两个图分开 fig, axes = plt.subplots(2, 1, sharex=True,figsize=(10,10))axes[0].plot(range (len(data20)),data20,'r')axes[1].plot(range (len(data40)),data40,'b') 7、画竖直线 plt.axvline(99, line, linewidth=4, color='r')#99表示横坐标 8、图片保存 plt.savefig('timeseries_y.jpg') 以上这篇对Python中plt的画图函数详解就是……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息