matplotlib 中的subplot的用法

一个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()
复制代码

  然后这是展示的结果 :

好了,基本上到这里已经差不多了,大家学会了么?

 

posted on   学弟1  阅读(45331)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示