首页 > 其他分享 >Matplotlib学习挑战第五关--绘制多图subplot() 和 subplots()

Matplotlib学习挑战第五关--绘制多图subplot() 和 subplots()

时间:2023-08-04 15:37:29浏览次数:41  
标签:subplot plt -- 子图 subplots 多图 np True

Matplotlib 绘制多图

我们可以使用 pyplot 中的 subplot() 和 subplots() 方法来绘制多个子图。 subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。

1、subplot

subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:(1, 1), (1, 2) plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。 plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

可以使用 suptitle函数设置公共的标题 注意是sup(超级),也就是父级标题

import matplotlib.pyplot as plt

import numpy as np

#plot1
x1=np.array([1,2,3,4,5])
y1=np.array([1,4,9,16,25])
plt.subplot(1,2,1)
plt.plot(x1,y1)
plt.title('plot1')

#plot2
x2=np.array([1,4,9,16,25])
y2=np.array([1,2,3,4,5])
plt.subplot(1,2,2)
plt.plot(x2,y2)
plt.title('plot2')

plt.suptitle('subplot')#总标题suptitle
plt.show()#最后调用show方法

Matplotlib学习挑战第五关--绘制多图subplot() 和 subplots()_数组

2、subplots()

subplots() 方法语法格式如下:

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, 
sharex=False, sharey=False, squeeze=True, 
subplot_kw=None, gridspec_kw=None, **fig_kw)
  • nrows:默认为 1,设置图表的行数。
  • ncols:默认为 1,设置图表的列数。
  • sharex、sharey:设置 x、y 轴是否共享属性,默认为 false,可设置为 'none'、'all'、'row' 或 'col'。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 'all':所有子图共享 x 轴或 y 轴,'row' 设置每个子图行共享一个 x 轴或 y 轴,'col':设置每个子图列共享一个 x 轴或 y 轴。
  • squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N1 或 1N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。
  • subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图。
  • gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。
  • **fig_kw:把详细的关键字参数传给 figure() 函数。
import matplotlib.pyplot as plt
import numpy as np

# 创建一些测试数据 -- 图1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

# 创建一个画像和子图 -- 图2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')

# 创建两个子图 -- 图3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)

# 创建四个子图 -- 图4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)

# 共享 x 轴
plt.subplots(2, 2, sharex='col')

# 共享 y 轴
plt.subplots(2, 2, sharey='row')

# 共享 x 轴和 y 轴
plt.subplots(2, 2, sharex='all', sharey='all')

# 这个也是共享 x 轴和 y 轴
plt.subplots(2, 2, sharex=True, sharey=True)

# 创建10 张图,已经存在的则删除
fig, ax = plt.subplots(num=10, clear=True)

plt.show()

标签:subplot,plt,--,子图,subplots,多图,np,True
From: https://blog.51cto.com/u_16131726/6963154

相关文章

  • 微信开发之自动回复的技术实现
    请求URL:http://域名地址/sendText请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是string接收人微信id/群idcontent是string文本内容消息返回数据:参数名类型说明codestring1000成功,1001失败m......
  • 让机器“看见”:图像数据的特征提取方法
     Datawhale干货 作者:谢雨飞,趣头条算法工程师图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征。人眼可以看到图像这种视觉信息,但这种信息并不能让计算机“看见”,即计算机并不能处理这种信息。想要让计算机“看见”,就要求我们将图像的视觉信息转化成计算机能够识......
  • 2014年工作中遇到的20个问题:141-160
    141.日期转换。//输入的时间为毫秒的准确时间//firstTime:1417139867916,lastTime:1419731867916publicstaticintgetDayBetweenTwoDate(longfirstTime,longlastTime){//当天的0点:1417104000000} 问题原因:firstCalendaStartTime-lastCalendaStartTime......
  • ITFriend创业阶段的服务器环境搭建手册
    创业阶段,进一步实践了Linux环境搭建和维护,下面是一些常用软件的搭建步骤和参考资料,仅供自己和诸位参考。我个人还是比较倾向“一站式Web开发”的,自己想做点事,需要太多的技能。非商业软件项目,自己全盘负责比较灵活和高效。1.mysql(关键是创建mysql用户,并用mysql用户执行安装程序) 参......
  • golang之sync包
    介绍sync包中常用的方法, -sync:提供基本的同步原语(比如Mutex、RWMutex、Locker)和工具类(Once、WaitGroup、Cond、Pool、Map)-sync/atomic:提供变量的原子操作(基于硬件指令compare-and-swap) [Once] [WaitGroup] 一个WaitGroup对象可以等待一组协程结束。使用方法是:......
  • Matplotlib绘图第七关--设置坐标轴的刻度xticks、yticks
    设置图例首先需要给每条线添加一个label,然后使用legend函数设置图例month=np.arange(1,13)cost=np.random.randint(10,1000,12,int)#12个月的支出income=np.random.randint(0,1000,12,int)#12个月的收入plt.xticks(month,['%d月'%iforiinmonth])#x轴会自动只显......
  • shell 脚本:nginx jdk maven node-exporter docker-ce
     写一个脚本,本地自带nginx1.24源码包,然后自动完成安装,并加入system管理。并设置开启自启动,并启动ng。并完成对80端口的curl测试,返回状态码200打印启动正常的消息:#!/bin/bash#安装依赖sudoapt-getupdatesudoapt-getinstall-ybuild-essentialwgetcurl#下载并解......
  • 免费算力!12万奖金!百度之星等你来!交通标识检测与场景匹配新赛事!
     Datawhale 主办:百度之星·开发者大赛2020年百度之星• 开发者大赛报名通道已开启。怀揣梦想的你,还不赶快登场?与其他技术咖同台竞技,开启代码和代码之间的较量!从键入代码到成功运行,Createformore,让我们一起用技术的力量创造更美好的生活!<< 滑动查看下一张图片 >>百度之星......
  • Linux4
    查找命令(which、find)1.which命令注:我们前面学的Linux命令。其实它的本体就是一个个的二进制可执行程序和Windows中的.exe文件,是一个意思。我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪儿语法:which要查找的命令  2.find命令——按文件名查找文件可......
  • Matplotlib绘图第七关--设置坐标轴的刻度xticks、yticks
    设置坐标轴的刻度以设置x轴的刻度为例xticks(ticks,[labels],**kwargs)参数说明:ticks:数组类型,用于设置X轴刻度间隔[labels]:数组类型,用于设置每个间隔的显示标签**kwargs:用于设置标签字体倾斜度rotation和颜色color等外观属性。不设置刻度时的样式x=np.arange(1,13)y=np.......