将 Fig.legend 与 matplotlib 中的子图结合起来

2024-03-06

免责声明:我知道在这个简单的示例中使用子图是无关紧要的,后者仅用于显示我的问题:我希望能够使用fig.legend() with fig.subfigures1.


我目前正在探索新的子图 https://matplotlib.org/stable/gallery/subplots_axes_and_figures/subfigures.htmlmatplotlib 的模块。我注意到使用创建的人物图例fig.legend()当主图包含子图时不显示:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 10, 10)
y1 = x
y2 = -x

fig = plt.figure(constrained_layout=True)
subfigs = fig.subfigures(nrows=2, ncols=1)

for subfig in subfigs:
    axarr = subfig.subplots(1, 2)
    for ax in axarr.flatten():
        l1, = ax.plot(x, y1, label='line1')
        l2, = ax.plot(x, y2, label='line2')
            #
        ax.legend()
    # subfig.legend(handles=[l1, l2], loc='upper center', ncol=2)
fig.legend(handles=[l1, l2], loc='upper center', ncol=2)
plt.savefig('subfigures_figlegend.png', dpi=200)

请注意该图例是如何缺失的。为了进行比较,请注意仅使用时显示plt.subplots:

fig, axarr = plt.subplots(2, 2, constrained_layout=True)
for ax in axarr.flatten():
    l1, = ax.plot(x, y1, label='line1')
    l2, = ax.plot(x, y2, label='line2')
    #
    ax.legend()
fig.legend(handles=[l1, l2], loc='upper center', ncol=2)
plt.savefig('subplots_figlegend.png', dpi=200)

当我运行你的代码时,图例就在那里,但它位于图的后面并略高于图,然后在plt.savefig()叫做。我能够让它与bbox_inches='tight'的论证plt.savefig()以及下面的移动图例。

fig.legend(handles=[l1, l2], bbox_to_anchor=(0.7, 1.1), ncol=2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Fig.legend 与 matplotlib 中的子图结合起来 的相关文章

  • 如何在Python中循环并存储自变量中的值

    我对 python 很陌生 所以这听起来可能很愚蠢 我进行了搜索 但没有找到解决方案 我在 python 中有一个名为 ExcRng 的函数 我可以对该函数执行什么样的 for 循环 以便将值存储在独立变量中 我不想将它们存储在列表中 而是
  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • “char”/“character”类型的类型提示

    char 或 character 没有内置的原始类型 因此显然必须使用长度为 1 的字符串 但是为了暗示这一点并暗示它应该被视为一个字符 如何通过类型提示来实现这一点 grade chr A 一种方法可能是使用内置的 chr 函数来表示这一
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 如何禁止 celery 中的 pickle 序列化

    Celery 默认使用 pickle 作为任务的序列化方法 如中所述FAQ http ask github com celery faq html isn t using pickle a security concern 这代表一个安全漏
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21

随机推荐

  • Resttemplate 在 GET 请求后挂起。经过多次测试后,我怀疑标题,也许特别是内容长度

    最新编辑 经过对许多不同服务的多次测试后 我怀疑挂起是标头的原因 也许是内容长度标头 但是我不知道为什么它会这样 我非常需要建议 我尝试使用返回较少标头的服务 但它不会挂起 我有一个奇怪的问题 我正在使用 Resttemplate 通过 G
  • AngularJS 两个具有相同模块名称的指令

    是否可以创建两个具有相同模块名称的指令 有了这两个文件 angular module fabTemplate directive fabGallery function and angular module fabTemplate dire
  • 如何根据时间条件进行 cumsum - 对 pandas 进行重新采样?

    我有一个如下所示的数据框 df pd DataFrame subject id 1 1 1 1 1 1 time 1 2173 04 03 10 00 00 2173 04 03 10 15 00 2173 04 03 10 30 00 2
  • 如何避免“局部变量可能尚未初始化”Java编译错误? (是的,认真的!)

    在你说这个问题已经被回答过很多次之前 这里是我的代码片段 final int x try x blah catch MyPanicException e abandonEverythingAndDie System out println
  • 在 Git 中检出多个同名文件

    我从一个包含多个 Eclipse 项目的大项目的其他几个分支合并 最终导致一堆 org eclipse jdt core prefs 设置被更改 我想在我的分支上恢复 是否有魔术命令可以用来在我的 git 存储库中的所有 eclipse 项
  • 程序集(x86)循环分段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我已经声明
  • django.test.TestCase 与 unittest 与 django.utils.unittest.TestCase 之间的区别

    我仍在使用 Django 1 2 1 我认为使用较新的 Django 我们不会import unittest然后做unittest TestCase 插图 import unittest class TestThis unittest Te
  • 如何将 JSON 字符串转换为具有不同结构的 JSON 字符串

    我正在构建一个应用程序 其中数据以 JSON 字符串的形式从第三方系统检索 我需要将此 JSON 字符串转换为另一个具有不同结构的 JSON 字符串 以便它可以与内部 Javascript 库中定义的预先存在的函数一起使用 理想情况下 我希
  • ReactJS 中没有“Access-Control-Allow-Origin”

    我想知道如何在reactJS或react native环境中的axios post方法中设置Access Control Allow Origin 我使用 CORS 附加组件 它可以工作 但我也想在标头中设置它 我尝试了这些方法 但没有一个
  • 使用 Yeoman 生成器重复提示

    我正在创建一个 Yeoman Generator 来自动创建一些数据库表 我需要向用户提示添加多个列 下面的 ColumnName 和 DataType 的组合 我的磁盘中保存了一个模板 我在其中绑定用户输入的动态名称 并根据该模板 由 Y
  • OpenGL ES纹理问题,4个重复的列和水平线(Android)

    我有一个 RGB 或 RGBA 纹理图像缓冲区 我想使用以下代码将其显示在我的 Android 设备上 我使用 NDK 中的 OpenGL glTexImage2D GL TEXTURE 2D 0 GL RGBA 256 256 0 GL
  • C# MVVM 服务层位于何处?

    我正在尝试开发一个小程序 它将与串行端口上的设备进行通信 该程序将负责格式化用户输入的数据并读取和呈现设备接收到的值 我对 WPF 和 MVVM 还很陌生 并且已经对整个数据绑定 XAML 混乱有了基本的了解 我认为 目前我的理解是这样的
  • 如何将 git 补丁从一个存储库应用到另一个存储库?

    我有两个存储库 一个是库的主存储库 另一个是使用该库的项目 如果我对从属项目中进行修复 我想要一种简单的方法来将该补丁应用回上游 该文件在每个存储库中的位置都不同 主要仓库 www playdar org static playdar js
  • 如何在包装 Firebug(或类似)控制台 api 时访问行号

    我封装了控制台 API 以提供精细的日志记录级别以及一些其他糖功能 这工作正常 唯一的问题是 firebug 或任何其他控制台 将始终将日志来自的行号报告为调用控制台 API 本身的行 您建议我如何让控制台记录我调用包装函数的行号 我更喜欢
  • 修改函数中的对象时出现意外结果

    当我修改函数中的对象时 我得到了一个奇怪的结果 有趣的是 当我在浏览器控制台中执行相同的操作时 我得到了我所期望的结果 但在反应中它似乎不起作用这是代码 const makeChanges i gt i foo test i new i a
  • 为 UIView 子类加载 Nib 的正确方法

    我知道这个问题以前曾被问过 但答案是矛盾的 我很困惑 所以请不要攻击我 我想要一个可重复使用的UIView整个我的应用程序的子类 我想使用 nib 文件来描述界面 现在假设它是一个加载指示器视图 其中有一个活动指示器 我希望在某些事件中实例
  • GCD和回调-并发问题

    我注册了一个回调处理程序 用于侦听 iOS 地址簿中的更改 由于某些奇怪的原因 已提交错误 当应用程序从后台返回时 有时会多次调用此回调 我希望我的回调处理程序只运行一次逻辑 即使回调被多次调用 这就是我注册回调的方式 ABAddressB
  • 在经典 ASP 中使用 ODBC 连接器时,MySQL“max_execution_time”默认为 30000ms,并且无法更改

    这个问题已经困扰我几个月了 而且我还没有找到解决方案 默认max execution time在经典 ASP 应用程序中使用 MySQL ODBC 连接器 8 0 时 设置为 30000 毫秒 30 秒 但我不知道如何增加它 我有一个大表
  • 如何获取 Twitter 当前用户的性别

    我已经查看了 Twitter 文档 anywhere 我可以在其中使用用户对象属性 但在用户数据中我找不到性别属性 当您创建 Twitter 帐户时 它从不询问性别 因此您无法通过 API 获取性别 你需要某种人工智能来确定它
  • 将 Fig.legend 与 matplotlib 中的子图结合起来

    免责声明 我知道在这个简单的示例中使用子图是无关紧要的 后者仅用于显示我的问题 我希望能够使用fig legend with fig subfigures1 我目前正在探索新的子图 https matplotlib org stable g