matplotlib绘制多个子图(汉字标题,XY轴标签)& PIL.Image 11行读取文件夹中照片

代码简单,逐行解释

以下代码解决:

  1. matplotlib如何显示汉字
  2. 如何在一张图上创建多个子图
  3. 加图例,标题,x,y坐标范围
  4. 利用PIL.Image.read(path)读文件夹中照片matplotlib绘制多个子图(汉字标题,XY轴标签)& PIL.Image 11行读取文件夹中照片_第1张图片
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['STSong']     # 中文宋体
x=np.linspace(1,20,100)
y=np.sin(x)
y1=np.cos(x)

plt.figure('林', figsize=(8, 6))#建画布1:画布的名字 figsize:画布大小
#用subplot()创建第一个子图
plt.subplot(221)#221:将整个figure分成2行2列,共2个子图,这里子图是第一个位置
plt.plot(x, y, c='red', label='relu',linewidth = 1)#c:颜色 label:图例
#给图片加x轴加标签、长度,让其更美观
plt.ylim((-2, 3))#x,y范围
plt.xlim(2,20)
plt.legend(loc='best')
plt.xlabel("啦啦啦",size=22)#x轴的标签
plt.ylabel("啦啦啦",size=22)
plt.title("点个赞",size=22)


#画第二个子图,跟上面一样
plt.subplot(224)
plt.plot(x,y1,c='green',label='喜喜',linewidth=1)
plt.ylim((-2, 3))
plt.xlim(0,12)
plt.legend(loc='best')
plt.xlabel("哦哦哦",size=20)
plt.ylabel("哦哦哦",size=20)
plt.title("点个赞",size=20)

##法二,上面的方法是直接plt.操作
##现在返回一个对象的方式来生成图,为混乱只记一种方法
f, fig = plt.subplots(3,2)
fig[0][0].plot(x,y1,c='green',label='喜喜',linewidth=1)
fig[0][0].set_title('Dataset Images')
fig[0][0].legend(loc='best')
plt.show()

11行读取文件夹中照片

#读文件夹中的照片
import os.path as osp
import glob
import matplotlib.pyplot as plt
from PIL import Image#读图片用

#Image.open(path)中的path只能读一个具体的文件不能读文件夹
path0='luohao_person_reid\dataset\Market-1501-v15.09.15\\bounding_box_test\\0000_c1s1_000151_01.jpg'#YES
path1='luohao_person_reid\dataset\Market-1501-v15.09.15\\bounding_box_test'#NO
path2 = glob.glob(osp.join('luohao_person_reid\dataset\Market-1501-v15.09.15\\bounding_box_test', '*.jpg'))#拿出path3下所有后缀带.jpg的文件,并给出绝对路径

for i in range(5):
    img = Image.open(path2[i]).convert('RGB')#type(path2)是list
    plt.figure(i)#每次创建一个画图(不放这句的话图形显示连贯),可以在最后加一个plt.close()关闭每个figure
    plt.imshow(img)
    plt.pause(0.2)
plt.show()#这是最终的一个显示,加上这句,图片就不连着放,需要鼠标点

#生成两幅图片,同时显示两个画布
# img = Image.open(path2[0]).convert('RGB')
# img1 = Image.open(path2[1]).convert('RGB')
# plt.figure(1)
# plt.imshow(img)
# plt.figure(2)
# plt.imshow(img1)
# plt.show()

matplotlib绘制多个子图(汉字标题,XY轴标签)& PIL.Image 11行读取文件夹中照片_第2张图片

你可能感兴趣的:(python日常小记录)