求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 


业务架构设计
4月18-19日 在线直播



基于UML和EA进行系统分析设计
4月25-26日 北京+在线



AI 智能化软件测试方法与实践
5月23-24日 上海+在线
 
追随技术信仰

随时听讲座
每天看新闻
 
 
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设置刻度和标签
19.Matplotlib柱状图
20.Matplotlib直方图
21.Matplotlib饼状图
22.Matplotlib折线图
23.Python Matplotlib散点图
24.Matplotlib等高线图
25.Matplotlib振动图
26.Matplotlib箱型图
27.Matplotlib提琴图
28.Python Matplotlib 3D绘图详解
29.Matplotlib绘制文本
30.Matplotlib数学表达式
31.Matplotlib image图像处理
32.Matplotlib转换对象
 

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

在使用 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元





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



111 次浏览
3次