求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Matplotlib教程
1.数据可视化是什么
2.Matplotlib是什么
3.Matplotlib下载和安装
4.Matplotlib.pyplot接口汇总
5.第一个Matplotlib绘图程序
6.PyLab绘制曲线图
7.Matplotlib figure图形对象
8.Matplotlib axes类使用详解
9.Matplotlib subplot()函数用法详解
10.Matplotlib subplots()函数详解
11.Matplotlib subplot2grid()函数详解
12.Matplotlib设置网格格式
13.Matplotlib设置坐标轴格式
14.Matplotlib设置坐标轴范围
15.Matplotlib设置刻度和标签
16.Matplotlib中文乱码解决方案
17.Matplotlib双轴图
18.Matplotlib设置刻度和标签
 

 
目录
 
Matplotlib subplot()函数用法详解
来源:C语言中文网
10 次浏览
 

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

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

plt.subplot(nrows, ncols, index)

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

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

图1:示意图

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

  1. import matplotlib.pyplot as plt
  2. plt.plot([1,2,3])
  3. #现在创建一个子图,它表示一个有2行1列的网格的顶部图。
  4. #因为这个子图将与第一个重叠,所以之前创建的图将被删除
  5. plt.subplot(211)
  6. plt.plot(range(12))
  7. #创建带有黄色背景的第二个子图
  8. plt.subplot(212, facecolor='y')
  9. plt.plot(range(12))

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

图2:subplot绘制结果

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

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

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

图3:add_subplot()绘图结果

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

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. import math
  4. x = np.arange(0, math.pi*2, 0.05)
  5. fig=plt.figure()
  6. axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
  7. axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
  8. y = np.sin(x)
  9. axes1.plot(x, y, 'b')
  10. axes2.plot(x,np.cos(x),'r')
  11. axes1.set_title('sine')
  12. axes2.set_title("cosine")
  13. plt.show()

输出结果如下:

图1:输出结果


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



10 次浏览