Matplotlib subplot()函数用法详解

在使用 Matplotlib 绘图时,我们大多数情况下,需要将一张画布划分为若干个子区域,之后,我们就可以在这些区域上绘制不用的图形。在本节,我们将学习如何在同一画布上绘制多个子图。

matplotlib.pyplot模块提供了一个 subplot() 函数,它可以均等地划分画布,该函数的参数格式如下:

plt.subplot(nrows, ncols, index)

nrows 与 ncols 表示要划分几行几列的子区域(nrows*nclos表示子图数量),index 的初始值为1,用来选定具体的某个子区域。

例如: subplot(233)表示在当前画布的右上角创建一个两行三列的绘图区域(如下图所示),同时,选择在第 3 个位置绘制子图。

图1:示意图

如果新建的子图与现有的子图重叠,那么重叠部分的子图将会被自动删除,因为它们不可以共享绘图区域。

import matplotlib.pyplot as plt
plt.plot([1,2,3])

#现在创建一个子图,它表示一个有2行1列的网格的顶部图。
#因为这个子图将与第一个重叠,所以之前创建的图将被删除

plt.subplot(211)
plt.plot(range(12))
#创建带有黄色背景的第二个子图
plt.subplot(212, facecolor='y')
plt.plot(range(12))

上述代码运行结果,如下图所示:

图2:subplot绘制结果

如果不想覆盖之前的图,需要使用 add_subplot() 函数,代码如下:

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot([1,2,3])
ax2 = fig.add_subplot(221, facecolor='y')
ax2.plot([1,2,3])

执行上述代码,输出结果如下:

图3:add_subplot()绘图结果

通过给画布添加 axes 对象可以实现在同一画布中插入另外的图像。

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig=plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
y = np.sin(x)
axes1.plot(x, y, 'b')
axes2.plot(x,np.cos(x),'r')
axes1.set_title('sine')
axes2.set_title("cosine")
plt.show()

输出结果如下:

图4:输出结果图

Matplotlib subplot()函数用法详解相关推荐

  1. python中subplot是什么意思_python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...

  2. python中mat函数_python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...

  3. pythonsubplot_python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...

  4. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  5. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  6. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  7. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  8. mysql: union / union all / 自定义函数用法详解

    mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...

  9. python中mat函数_Python中flatten( )函数及函数用法详解

    flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...

最新文章

  1. [BTS2004]一步一步学习BizTalk2004 CBR(content-based routing)
  2. 数据库集群和高可用解决方案
  3. GridSearchCV.grid_scores_和mean_validation_score报错
  4. 【转载】Gradle学习 第一章:引言
  5. BZOJ-1036 [ZJOI2008]树的统计
  6. 连载 3:利用 matlab计算卷积
  7. Leetcode——最长递增子序列(leetcode 300)
  8. linux之使用grep搜索文本
  9. 服务器放在机柜_机架式服务器和塔式服务器有区别吗
  10. java string equal 与==的区别
  11. MVC3.0 如何点击点击一张图片连接到另一地址
  12. random-生成随机数模块
  13. linux 小度 驱动_糯米WiFi安装Linux驱动 (同时支持百度WiFi、小米WiFi、腾讯全民WiFi、360WiFi)...
  14. QQ认证空间已升级QQ公众空间,申请地址是?
  15. Proximal Policy Optimization近端策略优化(PPO)
  16. 华为敏捷/DevOps实践:如何开好站立会议
  17. 【图床】图床、PicGo进行图片管理与上传
  18. 【动态规划的方法论】
  19. 用LINQ结合CAML查询 Sharepoint 数据库内容
  20. 信息安全网络安全到底有哪些资质?被大家追逐。。。

热门文章

  1. 九寨沟游玩体会大汇总 :)
  2. 贵金属入门,有以下四个方法
  3. 给CS研究生的求偶、求学、求职建议
  4. 华为云GaussDB以技术创新引领金融行业分布式转型
  5. 圆桌问题 二分多重匹配+输出解
  6. buffalo dwr 比较
  7. Linux服务器联网
  8. vivox6s Android7.1,vivo计划为7款机型升安卓7.1 今日公测
  9. HTTP/HTML/浏览器
  10. 好用的PHP导航源码