大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
一个figure对象包含了多个子图,可以使用subplot()函数来绘制子图:
(首先我没有想明白为啥会有这么多的内容来介绍这一个函数,后来知道了原来这个函数还真的挺多的内容)
言简意赅:
首先,它的调用是这样子的:subplot(numbRow , numbCol ,plotNum ) or subplot(numbRow numbCol plotNum),对。看清楚,可以不用逗号分开直接写在一起也是对的;
解释一下这是啥玩意:
numbRow是plot图的行数;numbCol是plot图的列数;plotNum是指第几行第几列的第几幅图 ;
举个例子,如果是subplot (2 ,2 ,1),那么这个figure就是个2*2的矩阵图,也就是总共有4个图,1就代表了第一幅图
也可以写成subplot(221),这是没毛病的哈。是不是超级简单!上个图:
看到没,我写的一个椒盐噪声的图,然后subplot可以分个写,只不过我用了一个循环的形式了;
对了,还有一种形式差点忘记说了,如果是只有3副图或者只有5副图的单数该怎么办?
这里就不能用循环操作了,因为3副图的话划分起来得重新排列:
啥意思?比如说,画一个3副图的图像:
首先将整个表按照 2*2
划分
前两个简单, 分别是 (2, 2, 1)
和 (2, 2, 2)
但是第三个图呢, 他占用了 (2, 2, 3)
和 (2, 2, 4)
然后需要对其重新划分, 按照 2 * 1
划分
前两个图占用了 (2, 1, 1)
的位置
因此第三个图占用了 (2, 1, 2)
的位置
直接上代码大家看一下,其实大同小异,语法都差不多;
import matplotlib.pyplot as plt import numpy as np def f(t): return np.exp(-t) * np.sin(2 * np.pi * t) if __name__ == '__main__': t1 = np.arange(-5, 5, 0.1) t2 = np.arange(-5, 5, 0.2) plt.figure() plt.subplot(221) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'g--') plt.subplot(222) plt.plot(t2, np.cos(2 * np.pi * t2), 'g--') plt.subplot(212) plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.show()
然后这是展示的结果 :
好了,基本上到这里已经差不多了,大家学会了么?
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166779.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...