Matplotlib 绘制多图

这篇具有很好参考价值的文章主要介绍了Matplotlib 绘制多图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Matplotlib 绘制多图

我们可以使用 pyplot 中的 subplot() 和 subplots() 方法来绘制多个子图。

subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。

subplot

subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:

(1, 1), (1, 2)

plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。

plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

实例

import matplotlib.pyplot as plt
import numpy as np

#plot 1:
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])

plt.subplot(1, 2, 1)
plt.plot(xpoints,ypoints)
plt.title("plot 1")

#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

plt.suptitle("W3Cschool subplot Test")
plt.show()

显示结果如下:

Matplotlib 绘制多图

设置 numRows = 2,numCols = 2,就是将图表绘制成 2x2 的图片区域, 对应的坐标为:

(1, 1), (1, 2)
(2, 1), (2, 2)

plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。

plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

plotNum = 3, 表示的坐标为(2, 1), 即第二行第一列的子图。

plotNum = 4, 表示的坐标为(2, 2), 即第二行第二列的子图。

实例

import matplotlib.pyplot as plt
import numpy as np

#plot 1:
x = np.array([0, 6])
y = np.array([0, 100])

plt.subplot(2, 2, 1)
plt.plot(x,y)
plt.title("plot 1")

#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.subplot(2, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

#plot 3:
x = np.array([1, 2, 3, 4])
y = np.array([3, 5, 7, 9])

plt.subplot(2, 2, 3)
plt.plot(x,y)
plt.title("plot 3")

#plot 4:
x = np.array([1, 2, 3, 4])
y = np.array([4, 5, 6, 7])

plt.subplot(2, 2, 4)
plt.plot(x,y)
plt.title("plot 4")

plt.suptitle("W3Cschool subplot Test")
plt.show()

显示结果如下:

Matplotlib 绘制多图

subplots()

subplots() 方法语法格式如下:

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

参数说明:

  • nrows:默认为 1,设置图表的行数。
  • ncols:默认为 1,设置图表的列数。
  • sharex、sharey:设置 x、y 轴是否共享属性,默认为 false,可设置为 'none'、'all'、'row' 或 'col'。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 'all':所有子图共享 x 轴或 y 轴,'row' 设置每个子图行共享一个 x 轴或 y 轴,'col':设置每个子图列共享一个 x 轴或 y 轴。
  • squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N*1 或 1*N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。
  • subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图。
  • gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。
  • **fig_kw:把详细的关键字参数传给 figure() 函数。

实例

import matplotlib.pyplot as plt
import numpy as np

# 创建一些测试数据 -- 图1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

# 创建一个画像和子图 -- 图2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')

# 创建两个子图 -- 图3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)

# 创建四个子图 -- 图4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)

# 共享 x 轴
plt.subplots(2, 2, sharex='col')

# 共享 y 轴
plt.subplots(2, 2, sharey='row')

# 共享 x 轴和 y 轴
plt.subplots(2, 2, sharex='all', sharey='all')

# 这个也是共享 x 轴和 y 轴
plt.subplots(2, 2, sharex=True, sharey=True)

# 创建标识为 10 的图,已经存在的则删除
fig, ax = plt.subplots(num=10, clear=True)

plt.show()

部分图表显示结果如下:

图1

Matplotlib 绘制多图

图2

Matplotlib 绘制多图

图3

Matplotlib 绘制多图

图4

Matplotlib 绘制多图文章来源地址https://www.toymoban.com/news/detail-478085.html

到了这里,关于Matplotlib 绘制多图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matplotlib绘制柱状图

    柱状图是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值。 绘制柱状图的命令为: bar() 1.简单柱

    2024年02月09日
    浏览(51)
  • 【Matplotlib 绘制折线图】

    在数据可视化中,折线图是一种常见的图表类型,用于展示随着变量的变化,某个指标的趋势或关系。Python 的 Matplotlib 库为我们提供了方便易用的功能来绘制折线图。 下面的代码展示了如何使用 Matplotlib 绘制一个折线图,使用两组数据 y1 和 y2 ,分别表示不同天数的温度变化

    2024年02月15日
    浏览(42)
  • matplotlib绘制动态瀑布图

    绘制瀑布图思路:遍历指定文件目录下所有的csv文件,每读一个文件,取文件前20行数据进行保存,如果超过规定的行数300行,将最旧的数据删除,仅保留300行数据进行展示。 网上找的大部分绘制瀑布图的代码,均无法呈现动态效果。不是动态的效果还能称为瀑布图吗?(疑问

    2024年01月18日
    浏览(46)
  • 【Python】Matplotlib绘制折线图

    1.Matplotlib画图简单实现 Matplotlib在一个绘制2D图片的库 2.折线图 2.1绘制折线图 接下来逐步对折线图进行修改 2.2设置线的格式 2.3设置折点 2.4.图片的保存和导出 2.5设置刻度 2.6显示中文 matplotlib只显示应为,无法显示中文,需要修改matplotlib的默认字体 通过matplotlib下的font_mange

    2023年04月09日
    浏览(81)
  • matplotlib绘制位置-时序甘特图

    这篇文章的目的是,总结记录一次使用matplotlib绘制时序甘特图的经历。之所以要绘制这个时序甘特图,是因为22年数模研赛C题需要用到,用于更好地呈现求解的车身缓冲区调序优化结果。 首先,我们觉得在这篇博客中出现的下面这张图展示效果很好,于是也想绘制一张。 这

    2024年02月12日
    浏览(34)
  • wxPython使用matplotlib绘制动态曲线

    我们创建了一个继承自 wx.Frame 的自定义窗口类 MyFrame 。在 MyFrame 的构造函数中,我们创建了一个 matplotlib 的 Figure 对象和一个 FigureCanvas 对象,用于在窗口中显示绘图结果。然后,我们使用 numpy 生成了一个包含100个点的x轴坐标数组 self.x 和对应的正弦值数组。接下来,我们使

    2024年02月12日
    浏览(40)
  • Python中Matplotlib库的使用(三)—— Matplotlib绘制图的常用类型

    plot(x,y) plot(x, y) 函数用于绘制折线图。折线图是一种用来展示连续数据之间关系的图表类型,适用于表示数据随着一个或多个变量的变化而变化的情况。 具体来说, plot(x, y) 函数接受两个参数: x :表示X轴上的数据点的值,通常是一个数组或列表,表示自变量的取值。 y :

    2024年02月03日
    浏览(73)
  • 使用matplotlib绘制3D图表和统计地图

    目录 使用mplot3D绘制3D图表 mplot3d概述 绘制3D线框图(plot_wireframe()) 绘制3D曲面图(plot_surface()) 绘制3D条形图  绘制3D柱形图 np.meshgrid()函数的补充 使用animation制作动图 例子1  例子2 使用basemap绘制统计地图 实例:美国部分城镇人口分布(basemap) 实例1:三维空间的星星(3

    2024年02月04日
    浏览(47)
  • python使用matplotlib库绘制数学函数

    ** ** matplotlib是python的绘画库,它可以与NumPy一起使用,提供了一种轻量级的MatLab开源高效替代方案。它可以和图形工具包PyQt等工具 一起配合使用,能够完成日常科学计算中多种数学库图可视化任务。 步骤1:使用pip安装matplotlib库 在终端输入 pip install matplotlib 命令,如下图所

    2024年02月12日
    浏览(50)
  • Matplotlib——绘制散点图并连线

    x_values y_values

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包