matplotlib 向任意位置添加一个子图(axes)

当前有效matplotlib版本为:3.4.1

概述

axes()函数功能与subplot()函数极其相似。都是向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图或者将某子图设为当前子图。两者的区别在于subplot()函数通过参数确定在子图网格中的位置,而axes()函数在添加子图位置时根据4个坐标确定位置。

函数的定义签名为:matplotlib.pyplot.axes(arg=None, **kwargs)

函数的调用签名为:

# 在当前图像中添加一个铺满的子图
plt.axes()
# 根据rect位置添加一个子图
plt.axes(rect, projection=None, polar=False, **kwargs)
# 将ax设置为当前子图
plt.axes(ax)

函数的参数为:

  • arg : 取值为 None或四元组rect

    • None:使用subplot(**kwargs)添加一个新的铺满窗口的子图。
    • 四元组rectrect = [left, bottom, width, height],使用 ~.Figure.add_axes根据rect添加一个新的子图。
  • rect的取值为以左下角为绘制基准点,确定高度和宽度。rect的4个元素均应在[0,1]之间(即以图像比例为单位)。
  • projection: 控制子图的投影方式。{None, 'aitoff', 'hammer', 'lambert', 'mollweide', 'polar', 'rectilinear', str},默认值为None ,即'rectilinear'
  • polar:相当于设置projection='polar'。可选参数。布尔值,默认值为True
  • sharex, sharey:用于设置共享x/y轴。可选参数。Axes对象。默认值为None
  • lables:返回的子图对象的标签。可选参数。字符串。
  • **kwargs:用于向创建子图网格时用到的 ~matplotlib.gridspec.GridSpec类的构造函数传递关键字参数。可选参数。字典。

函数的返回值为:
.axes.SubplotBase实例,或其他~.axes.Axes的子类实例。

函数原理

axes函数其实是Figure.add_subplotFigure.add_axes方法的封装。源码为:

def axes(arg=None, **kwargs):
    fig = gcf()
    if arg is None:
        return fig.add_subplot(**kwargs)
    else:
        return fig.add_axes(arg, **kwargs)

案例:使用axes函数添加子图

根据输出可知,axes添加的子图是可以重叠的

案例:混合应用subplot、subplots、subplot2grid、axes函数

import matplotlib.pyplot as plt

# 添加3行3列子图9个子图
fig, axes = plt.subplots(3, 3)
# 为第1个子图绘制图形
axes[0, 0].bar(range(1, 4), range(1, 4))
# 使用subplot函数为第5个子图绘制图形
plt.subplot(335)
plt.plot(1,'o')
# 使用subplot2grid函数将第三行子图合并为1个
plt.subplot2grid((3,3),(2,0),colspan=3)
# 在图像0.5,0.5位置添加一个0.1宽0.1长的背景色为黑色的子图
plt.axes((0.5,0.5,0.1,0.1),facecolor='k')
plt.show()

axes函数与subplotsubplotssubplot2grid函数的对比

相同之处:
axes函数与subplotsubplot2grid函数都是添加一个子图。

不同之处:
axes函数可在图像中的任意位置添加子图。subplotsubplotssubplot2grid函数只能根据固定的子图网格位置添加子图。
axes函数创建的子图可重叠。subplotsubplotssubplot2grid函数创建的子图如果位置重叠,会覆盖掉原有的子图(删除原有子图)。

到此这篇关于matplotlib 向任意位置添加一个子图(axes)的文章就介绍到这了,更多相关matplotlib任意位置添加子图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • matplotlib之pyplot模块实现添加子图subplot的使用

    概述 subplot()函数向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图.或者将某子图设为当前子图. pyplot.subplot()其实是Figure.add_subplot()的一个封装. 函数的定义签名为:matplotlib.pyplot.subplot(*args, **kwargs) 函数的调用签名为: subplot(nrows, ncols, index, **kwargs) subplot(pos, **kwargs) subplot(**kwar

  • matplotlib给子图添加图例的方法

    代码如下: import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8] y = [5,2,4,2,1,4,5,2] axe1 = plt.subplot(211) s1 = axe1.scatter(x,y, color='r', s=25, marker="o") plt.legend([s1],['A']) #或者 #s1 = axe1.scatter(x,y, color='r', s=25, marker="o"

  • matplotlib 向任意位置添加一个子图(axes)

    当前有效matplotlib版本为:3.4.1. 概述 axes()函数功能与subplot()函数极其相似.都是向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图或者将某子图设为当前子图.两者的区别在于subplot()函数通过参数确定在子图网格中的位置,而axes()函数在添加子图位置时根据4个坐标确定位置. 函数的定义签名为:matplotlib.pyplot.axes(arg=None, **kwargs) 函数的调用签名为: # 在当前图像中添加一个铺满的子图

  • C语言数组任意位置插入一个元素方法

    前言: 这篇文章我们来看看向C语言的数组中随机插入一个元素的方法. 如果是在python向列表中随机添加元素,我们往往使用insert()的方法. l = ['Python', 'C++', 'Java'] #插入元素 l.insert(1, 'C') print(l) #插入元组,整个元祖被当成一个元素 t = ('C#', 'Go') l.insert(2, t) print(l) #插入列表,整个列表被当成一个元素 l.insert(3, ['Ruby', 'SQL']) print(l)

  • Python+Matplotlib实现给图像添加文本标签与注释

    目录 1.添加文本标签 plt.text() 2. 添加注释 plt.annotate() 1.添加文本标签 plt.text() 用于在绘图过程中,在图像上指定坐标的位置添加文本.需要用到的是plt.text()方法.  其主要的参数有三个: plt.text(x, y, s) 其中x,y表示传入点的x和y轴坐标.s表示字符串. 需要注意的是,这里的坐标,如果设定有xticks.yticks标签,则指的不是标签,而是绘图时x.轴的原始值. 因为参数过多,不再一一解释,根据代码学习其用法. ha

  • 用javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置

    用Javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置. 准备数据,创建一个对象,将是存储DropDownList控件每个Item数据. 复制代码 代码如下: Imports Microsoft.VisualBasic Namespace Insus.NET Public Class Catalog Private _ID As Integer Private _Name As String Public Property ID As Integer Get

  • matplotlib之pyplot模块添加文本、注解(text和annotate)

    目录 概述 text函数概述 annotate函数概述 text函数和annotate函数的对比 总结 概述 text函数作用是根据x,y坐标向图像添加文本. annotate函数作用是根据x,y坐标向图像添加文本注解. 两者非常相似,但是又有一定差别. text函数概述 text函数的签名为:matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs) 参数说明如下: x,y:放置文本的坐标.浮点数.必备参数. s:文本.字符串.必备参数.

  • jquery任意位置浮动固定层插件用法实例

    本文实例讲述了jquery任意位置浮动固定层插件用法.分享给大家供大家参考.具体分析如下: 说明:可以让指定的层浮动到网页上的任何位置,当滚动条滚动时它会保持在当前位置不变,不会产生闪动 2009-06-10修改:重新修改插件实现固定浮动层的方式,使用一个大固定层来定位   2009-07-16修改:修正IE6下无法固定在top上的问题 09-11-5修改:当自定义层的绝对位置时,加上top为空值时的判断   这次的方法偷自天涯新版页   经多次测试,基本上没bug~ 调用: 1 无参数调用:默

  • 使用Python向DataFrame中指定位置添加一列或多列的方法

    对于这个问题,相信很多人都会很困惑,本篇文章将会给大家介绍一种非常简单的方式向DataFrame中任意指定的位置添加一列. 在此之前或许有不少读者已经了解了最普通的添加一列的方式,如下: import pandas as pd feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1

  • PHP实现数组向任意位置插入,删除,替换数据操作示例

    本文实例讲述了PHP实现数组向任意位置插入,删除,替换数据操作.分享给大家供大家参考,具体如下: array_splice函数可以实现任意位置插入和删除,替换 array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) offset 如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除.如果 offse

  • 浅析ELF转二进制允许把 Binary 文件加载到任意位置

    背景简介 有一天,某位同学在讨论群聊起来: 除了直接把 C 语言程序编译成 ELF 运行以外,是否可以转成二进制,然后通过第三方程序加载到内存后再运行. 带着这样的问题,我们写了四篇文章,这是其二. 上篇 介绍了如何把 ELF 文件转成二进制文件,并作为一个新的 Section 加入到另外一个程序中执行. 这个代码包括两个段,一个 text 段,一个 data 段,默认链接完以后,text 中是通过绝对地址访问 data 的,ELF 转成 Binary 后,这个地址也写死在 ELF 中,如果要作

  • 利用matplotlib为图片上添加触发事件进行交互

    这篇文章的目的出于实验的需要,我需要对图片上的部分区域做出涂抹标记,本来是选择用opencv做交互的,但在需要进行图像的输出以及鼠标时间添加时,opencv出现错误. 解决方案网上有很多,尝试以后依然bug,这里先做一个记录,有时间再来处理. 错误报告如下: OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon s

随机推荐