博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.9Python数据处理篇之Matplotlib系列(九)---子图分布
阅读量:7162 次
发布时间:2019-06-29

本文共 1444 字,大约阅读时间需要 4 分钟。

目录

目录

前言

前面我们已经知道,一个figure可以画一张画布,今天我们讲的是在同一个figure里画多张子图,我们要用的是subplot与subplot2grid()方法来绘制子图。

(一)subplot()方法

==1.语法说明==

subplot是均匀的分割绘图区,来进行子图的放置。

  1. 需要注意的是subplot并不适合来绘制跨行或者跨列的子图,跨行与跨列的子图绘制,交给subplot2grid()更容易完成。
  2. 如果分割的图只是个位数时,那么原本的表示方法:(2,2,1),与(221)等效,其他的不可如此。

==2.源代码==

# 导入模块import matplotlib.pyplot as pltimport numpy as np# 数据x = np.linspace(-10, 10, 100)y1 = xy2 = x**2y3 = x**3# 创建一个figure窗体fig = plt.figure(num="子图得比较")fig.suptitle("draw some subplot")# 绘制第一个子图ax1 = plt.subplot(2, 2, 1)plt.plot(x, y1)ax1.set_title("y1 = x")# 绘制第二个子图ax2 = plt.subplot(222)plt.plot(x, y2)ax2.set_title("y2=x**2")# 绘制第三个子图ax3 = plt.subplot(223)plt.plot(x, y3)ax3.set_title("y3=x**3")# 展示plt.show()

==3.输出效果==

01.png

(二)subplot2grid方法

==1.语法说明==

subplot2grid((分割),(起始位置),colspan=列宽, rowspan=行宽)

例如:plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1),

将整块figure画布分成3行3列的格子,从第2行,第一列画起该子图,列宽占两格,行宽占一格。

像figure一样,定义subplot2grid()子图以后,后续的操作都在该子图上,直到另一个子图的出现。

==2.源代码==

import matplotlib.pyplot as plt# 创建画布plt.figure()# 创建子图ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3, rowspan=1)ax1.plot([1, 2], [1, 2])ax1.set_title("No1")ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=1)ax3 = plt.subplot2grid((3, 3), (1, 2), colspan=2, rowspan=2)ax4 = plt.subplot2grid((3, 3), (2, 0), colspan=1, rowspan=1)ax5 = plt.subplot2grid((3, 3), (2, 1), colspan=1, rowspan=1)plt.show()

==3.展示效果==

02.png

作者:Mark

日期:2019/02/01 周五

转载于:https://www.cnblogs.com/zyg123/p/10517711.html

你可能感兴趣的文章