绘制子图
子图可以在一个窗口中显示多张图表.
矩阵式布局
矩阵式布局相关API:mp.figure()创建一个窗口,然后mp.subplot(m,n,p)设置子图的数量。m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。下面的例子是按顺序在子图上画出对应的数字。
复制代码
1
2
3
4
5
6
7
8
9
10
11import matplotlib.pyplot as mp mp.figure('Subplot A', facecolor='lightgray') for i in range(9): mp.subplot(3,3,i+1) mp.xticks([]) mp.yticks([]) mp.text(0.5, 0.5, i+1, ha='center', va='center', size=36, alpha=0.5) mp.tight_layout() mp.show()
网格式布局
网格式布局支持单元格的合并.
这里要用到一个新的函数matplotlib.gridspec,gridspec函数指定将放置子图的网格的几何形状,需要设置网格的行数和列数。以及子图的布局参数可以调整,如下例子:
gs = mg.GridSpec(3, 3)将窗口分成3x3的网格,mp.subplot(gs[0, :2])然后选择第一行的前两个格子合并,然后在格子中写了个1。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12import matplotlib.pyplot as mp import matplotlib.gridspec as mg mp.figure('Grid Layout', facecolor='lightgray') gs = mg.GridSpec(3, 3) mp.subplot(gs[0, :2]) mp.text(0.5, 0.5, '1', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.tight_layout() mp.show()
完整代码及效果
还可以类似这样的操作,将整个图像绘制完整,代码和效果均如下图所示:
复制代码
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
32
33
34
35""" 网格式布局 """ import matplotlib.pyplot as mp import matplotlib.gridspec as mg mp.figure('Grid Layout', facecolor='lightgray') gs = mg.GridSpec(3, 3) mp.subplot(gs[0, :2]) mp.text(0.5, 0.5, '1', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.subplot(gs[:2, 2]) mp.text(0.5, 0.5, '2', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.subplot(gs[1, 1]) mp.text(0.5, 0.5, '3', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.subplot(gs[1:, 0]) mp.text(0.5, 0.5, '4', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.subplot(gs[2, 1:]) mp.text(0.5, 0.5, '5', ha='center', va='center', size=36) mp.xticks([]) mp.yticks([]) mp.tight_layout() mp.show()
最后
以上就是干净大碗最近收集整理的关于matplotlib之绘制子图的全部内容,更多相关matplotlib之绘制子图内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复