matplotlib绘制多个子图(汉字标题,XY轴标签,加x,y刻度,给图上每个点加上数值)& PIL.Image 11行读取文件夹中照片 您所在的位置:网站首页 matplotlib设置y轴刻度 matplotlib绘制多个子图(汉字标题,XY轴标签,加x,y刻度,给图上每个点加上数值)& PIL.Image 11行读取文件夹中照片

matplotlib绘制多个子图(汉字标题,XY轴标签,加x,y刻度,给图上每个点加上数值)& PIL.Image 11行读取文件夹中照片

2023-07-31 23:05| 来源: 网络整理| 查看: 265

以下代码解决:

matplotlib如何显示汉字如何在一张图上创建多个子图加图例,标题,x,y坐标范围,加x,y刻度控制线型,控制标记风格给图上每个点加上数值利用PIL.Image.read(path)读文件夹中照片图片保存 1. 基本操作,效果如下

图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,linestyle=':', marker='|')#c:颜色 label:图例 #x,y范围 plt.ylim((-2, 3)) plt.xlim(2,20) #x,y刻度 plt.xticks(np.arange(-2,3,0.5)) plt.xticks(np.arange(2,20,1)) #x轴的标签 plt.xlabel("啦啦啦",size=22) plt.ylabel("啦啦啦",size=22) #图例 plt.legend(loc='best') plt.title("点个赞",size=22) plt.savefig('./lin.jpg')#保存图片 ------------------------------------------------------------------------------ #画第二个子图,跟上面一样 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() 2. 更好看点,如下

注意: plt.plot(x, y1, ‘r^-.’,label = “短点相间线”) 这里x=[1,2,3,4,5]是从1开始的,plot时可以只给y值,但是画图的时候起点从0开始 在这里插入图片描述

控制线型,控制标记风格 plt.plot(x, y1, 'r^-.',label = "短点相间线") r^-. 解释 r:表示红色 ^:表示控制标记风格,其他标记风格如下图对应符号及形状 -. 表示控制线型,其他线性有(- 实线)(-- 短线)(-.短点相间线)(:虚点线)

在这里插入图片描述 在这里插入图片描述 颜色可参考

给每个点加上数值 plt.text(x, y, s, fontsize, verticalalignment,horizontalalignment,rotation , **kwargs) x, y:表示标签添加的位置,也就是说,你指定一个(x,y)的坐标位置,然后在这个地方加数字标签 s:表示所加标签的值,可以是数字,可以是汉字 fontsize:加标签字体大小了,取整数。 verticalalignment:表示垂直对齐方式 ,可选 ‘center’ ,‘top’ , ‘bottom’,‘baseline’ horizontalalignment:表示水平对齐方式 ,可选 ‘center’ , ‘right’ ,‘left’ rotation:表示标签的旋转角度,以逆时针计算,取整

代码

import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['STSong'] # 中文宋体 import numpy as np x=[1,2,3,4,5,] y1=[1,4,6,8,2,] y2=[2,5,7,9,3,] y3=[3,6,8,10,4,] plt.plot(x, y1, 'r^-.',label = "短点相间线") plt.plot(x, y2, 'g^--',label = "短线") plt.plot(x, y3, 'b^:',label = "虚线") plt.legend(loc='best') for i in range(5): plt.text(x[i],y1[i]+0.2,s=y1[i],fontsize=10, color = "r", style = "italic", weight = "light", verticalalignment='center', horizontalalignment='right',rotation=0)#这里y1[i]+0.2加上0.2的目的是防止标记风格掩盖数字,所以将显示数字的位置上调 plt.show() 3. 11行读取文件夹中所有照片 #读文件夹中的照片 import os 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(os.path.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()

在这里插入图片描述

图片保存

使用os.path.join('数据/图片',image_name)生成目录,括号中前一半是文件夹名,后一半是图片的名字 注意:要实现建好文件夹,否则报错

import os img = Image.open(path1) #法一 img.save(os.path.join('数据/图片',image_name)) #法二 plt.savefig() #法三 scipy.misc.imsave( 'feature_map_save//'+str(index) + ".png", feature_map[index - 1]) #在REID代码里,有cv2.imwrite()的方法


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有