美文网首页OpenCV Vision
Matplotlib库基础-子图的绘制

Matplotlib库基础-子图的绘制

作者: 小橙子_43db | 来源:发表于2019-12-06 20:20 被阅读0次

主要内容:Matplotlib库的绘图区域,以及3种子图的选取方式。

1.subplot()函数

import numpy as np

arr = np.arange(4)

plt.subplot(221)

plt.plot([1,2,3,4])

plt.subplot(224)

plt.plot(arr*arr)

plt.show()

输出:

plt.subplot(2,2,4)表示讲绘图区域分成两行两列,按照从左到右的顺序排列,选取第四块。

横向跨区域情况

我们在实际中会遇到一张图跨几个子图的情况,我们还是用行列来分。

import numpy as np

arr = np.arange(4)

plt.subplot(221)

plt.plot([1,2,3,4],color='r')

plt.subplot(222)

plt.plot(arr*arr,color='g')

plt.subplot(212)

plt.plot(arr*arr*arr,color='b')

plt.show()

输出:

从上面的两个子图的角度看,整个图被分成两行两列,他们呢分别是1,2的位置,所以选取他们用plt.subplot(221)和plt.subplot(222),从下面的跨区域子图来看,整个图被分成了两行1列,位于下面的是2,所以选取的是plt.subplot(212)。

纵向跨区域同样理解:

#纵跨区域情况

import numpy as np

arr = np.arange(4)

plt.subplot(221)

plt.plot([1,2,3,4],color='r')

plt.subplot(223)

plt.plot(arr*arr,color='g')

plt.subplot(122)

plt.plot(arr*arr*arr,color='b')

plt.show()

输出:

注意:subplot()函数与先创建画布fig = plt.figure() 然后使用ax = fig.add_subplot() 在画布里面添加子图是一样的效果。

2.subplot2gird()函数

当我们碰到更为复杂的绘图区域,使用subplot()函数会比较麻烦,这时候有一个更好用的subplot2grid()函数可以帮我们完成子图布局。

plt.subplot2gird(GridSpec,CurSpec,colspan=1,rowspan=1)

理念:设定网格,选中网格,确定选中的区域或数量,下标从0开始索引。

#复杂选取布局

plt.subplot2grid((3,3),(0,0),colspan=3)

plt.subplot2grid((3,3),(1,0),colspan=2)

plt.subplot2grid((3,3),(1,2),rowspan=2)

plt.subplot2grid((3,3),(2,0))

plt.subplot2grid((3,3),(2,1))

输出:

plt.subplot2grid((3,3),(0,0),colspan=3):可以(3,3)表示将整个图分成3行3列,每一个子图可以用坐标的形式选取(这里就是(0,0)),colspan和rowspan可以给定跨行或是跨列的数量默认是1。

3.GridSpec类

在matplotlib 中,存在一个模块gridspec。模块gridspec 是一个可以指定画布中子区位置或者说是布局的“分区”模块。在模块gridspec 中,有一个类GridSpec。类GridSpec 可以指定网格的几何形状,也就是说,可以划定一个子区的网格状的几何结构。

#使用GridSpec类创建子图

from matplotlib.gridspec import GridSpec

gs = GridSpec(3,3)

ax1 = plt.subplot(gs[0,:])

ax2 = plt.subplot(gs[1,0:2])

ax3 = plt.subplot(gs[1:,2])

ax4 = plt.subplot(gs[2,0])

ax5 = plt.subplot(gs[2,1])

输出:

GridSpec(3,3)可以将画图区域分成3*3的格子,我们可以将这些子区域看作3*3的二维数组,使用二维数组的切片来取子图的对应的跨行或是跨列的区域。

相关文章

  • Matplotlib库基础-子图的绘制

    主要内容:Matplotlib库的绘图区域,以及3种子图的选取方式。 1.subplot()函数 import n...

  • 子图制作

    matplotlib 入门学习1.子图绘制 直接上code import matplotlib.pyplot as...

  • python数据分析之Matplotlib库入门

    Matplotlib库由各种可视化类构成,matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于...

  • matplotlib绘制图表

    python中使用matplotlib库可以快速画简单的图表下面介绍下柱状图和饼图绘制1 柱状图绘制 2 饼状图绘...

  • 决策树(下)

    用Matplotlib绘制树形图 Matplotlib annotations Matplotlib提供了一个非常...

  • 2018-04-24

    matplotlib绘图 通常我们可以绘制折线图、饼状图、柱状图,用matplotlib绘制折线图、柱状图情况较多...

  • matplotlib(四)——绘制子图

    一、初始化。 plt.figure()用来初始化一个图像对象。 可通过设定figsize=(width,heig...

  • Python数据可视化(十一):气泡图绘制

    使用matplotlib包绘制气泡图 使用seaborn包绘制气泡图 countrycontinentyearli...

  • python图片-2-matplotlib库使用

    让程序来绘制图片 matplotlib的库来绘制图片进行显示。matplotlib是一个专业绘图的库,相当于mat...

  • matplotlib包

    一、概述 matplotlib是matlab绘图python中的应用。 二、图片和子图 plt绘制的图片都在一个图...

网友评论

    本文标题:Matplotlib库基础-子图的绘制

    本文链接:https://www.haomeiwen.com/subject/xtpdgctx.html