如何跨子图添加层次轴以标记组?

2023-12-12

我有一组可以分组的不同时间序列。例如。下图显示了 A、B、C 和 D 系列。但是,A 和 B 属于 G1 组,C 和 D 属于 G2 组。

我想通过在左侧添加另一个轴来反映这一点,该轴穿过涡轮机组并相应地标记这些轴。

到目前为止我已经尝试了一些事情,但显然这并不那么容易。

有人知道我该怎么做吗?

PS:因为我用的是panda的plot(subplots=True)在已经有列的数据框中

      |  G1   |  G2  |
      |-------|------|
index | A  B  | C  D |
------|-------|------|

也许 pandas 已经可以为我做到这一点了。这就是为什么我使用pandas tag.

enter image description here


您可以在图中创建额外的轴,这些轴跨越每两个图,但只有一个左 y 轴,没有刻度线和其他装饰。仅设置了 ylabel。这将使整个事情看起来很协调。

enter image description here

好处是您可以使用现有的 pandas 绘图。缺点是代码超过 15 行。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec


df = pd.DataFrame(np.random.rand(26,4), columns=list("ABCD"))
axes = df.plot(subplots=True)
fig = axes[0].figure


gs = gridspec.GridSpec(4,2)
gs.update(left=0.1, right=0.48, wspace=0.05)
fig.subplots_adjust(left=.2)

for i, ax in enumerate(axes):
    ax.set_subplotspec(gs[i,1])

aux1 = fig.add_subplot(gs[:2,0])
aux2 = fig.add_subplot(gs[2:,0])

aux1.set_ylabel("G1")
aux2.set_ylabel("G2")

for ax in [aux1, aux2]:
    ax.tick_params(size=0)
    ax.set_xticklabels([])
    ax.set_yticklabels([])
    ax.set_facecolor("none")
    for pos in ["right", "top", "bottom"]:
        ax.spines[pos].set_visible(False)
    ax.spines["left"].set_linewidth(3)
    ax.spines["left"].set_color("crimson")


plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跨子图添加层次轴以标记组? 的相关文章

  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • 使用 Flexslider 进行哈希 URL 导航

    我正在构建一个使用 flexslider 的网站 但我想实现一些 URL 哈希导航 根据 URL 的哈希值 我计划获取要显示的幻灯片的索引 最接近的方法是查看手动导航的代码 其中单击的元素的索引等于滑动 slider controlNav
  • Chrome 扩展程序将外部 javascript 添加到当前页面的 html

    我通过 chrome 扩展将一些外部 JavaScript 添加到页面末尾 然后 外部 JavaScript 尝试将一些数据发送回服务器 但这并没有发生 JavaScript 想要获取当前页面的 url 和引荐来源网址并将其发布回服务器 谁
  • 秒表基准测试可以接受吗?

    是否有人使用过秒表基准测试 或者应该始终使用性能工具 有没有什么好的免费 Java 工具 你使用什么工具 为了澄清我的担忧 由于操作系统调度 秒表基准测试可能会出现错误 在程序的给定运行中 操作系统可能会在您正在计时的函数中间安排另一个 或
  • 使用COM端口读取/写入数据的批处理脚本

    我需要编写一个可以读取和写入 COM 端口 在我的例子中为 COM1 的批处理脚本 我知道我可以使用以下命令将数据发送到 COM 端口 echo hello gt COM1 我可以使用读取进入文本文件的数据 type COM1 gt sam
  • Webpack 中的“publicPath”有什么作用?

    Webpack 文档声明output publicPath is The output path从 JavaScript 的角度来看 您能详细说明一下这实际上意味着什么吗 I use output path and output filen
  • NSURLErrorDomain错误-1021

    我正在开发一个应用程序 我集成了保管箱 登录正确完成 我也可以在 dropBox 中创建文件夹 但是当我尝试加载文件时出现错误 我收到以下错误 error making request to 1 files put dropbox Info
  • 我应该在服务器上使用什么 WooCommerce API?

    我正在编写一个脚本来批量更改产品属性 例如价格 重量和尺寸 我需要直接在安装了 WordPress 4 7 2 和 WooCommerce 2 6 13 的服务器上运行脚本 我能想到的选项对我来说似乎并不理想 WooCommerce 非 R
  • 请帮助我在我的 Java 应用程序中过滤掉 Apache Log4j 的第三方日志记录

    我正在使用第三方 jar 它们将自己的日志附加到我的 Java 应用程序的日志文件中 我不想将这些第三方日志附加到我的日志文件中 因为这会使日志文件非常笨拙和混乱 我知道这个方法 log4j logger org springframewo
  • JS 删除前导零

    在 JavaScript 中 我想删除小数位和后面的零 比如我原来的号码 0 00558 我想留下 558 这可能吗 如果有方法的话 我也在使用 AngularJS 您可以通过简单的正则表达式替换来做到这一点 var number 0 00
  • 矩阵取子集

    考虑以下矢量资源和矩阵团队 向量 res 代表索引 我需要只提取那些索引号在向量 res 中且性别 F 的名称 我需要在 R 中执行此操作 由于我是 R 的新手 无法解决此问题 res 1 2 12 16 5 6 19 17 14 9 4
  • 批处理文件 - 循环 ping - 输出到已启动的文件主机

    我想制作一个 bat 文件 它将执行如下所示的 for 循环 echo off FOR L G IN 1 1 69 DO ping n 1 192 168 G 3 ping n 1 192 168 G 4 然后查看输出并仅将成功回复 pin
  • Access 2007 交叉表查询表达式

    目标 根据计算列的值创建百分比列 下面是交叉表查询的 SQL 代码 TRANSFORM Count Master Calendar ID AS CountOfID SELECT Master Calendar Analyst Count M
  • 将上传图像的文件路径保存到 MySQL 数据库

    我为此浏览了无数不同的帮助菜单和主题 但仍然遇到问题 我只想将上传图像的文件路径插入 MySQL 数据库 我尝试将图像传递给变量 然后使用查询将其推送到数据库 但它不起作用 我的代码在下面 表单在上面 php在下面 h1 test h1
  • 如何修复“尝试用‘字符’索引 nil”(Roblox)

    输出显示 Players username PlayerGui replicated 18 attempt to index nil with Character 这是我的代码 local Character Player Characte
  • CSS高度100%问题

    我知道有很多关于 css 100 高度问题的问题 但是我尝试按照那里的说明进行操作 但高度仍然不是 100 所以我想我会再问这个问题 您可以看到问题的网站是 www exendo be 一些CSS样式 html height auto im
  • Ruby - Rails - 将文本传递给 javascript

    为什么这不将文本传递给 javascript jquery i error 里面肯定有一个字符串 我可以在控制台上打印它 js erb 文件 gt error Validation error s Item Is not defined o
  • Intellij checkstyle - 设置相对于模块的路径[重复]

    这个问题在这里已经有答案了 我的公司正在从 Eclipse 切换到 IntelliJ 在 Eclipse 中 我们对抑制过滤器进行了以下配置checkstyle xml
  • 如何使用 .querySelector 选择器定位 .style 属性?

    我通过以下方式选择了特定课程 querySelectorAll var hit3 document querySelectorAll lattern hit 3 circle 我现在正在尝试瞄准并调整 style visibility通过执
  • Dart 1.x 书籍仍然适用吗?

    既然 Dart 2 已发布 那么 Dart 1 x 书籍是否仍然相关 Dart 2 文档仅指向迁移指南 我正在尝试学习 Dart 想知道是否应该购买一本基于 Dart 1 x 的书籍 或者应该等待基于 Dart 2 的书籍的出版 Dart
  • 如何跨子图添加层次轴以标记组?

    我有一组可以分组的不同时间序列 例如 下图显示了 A B C 和 D 系列 但是 A 和 B 属于 G1 组 C 和 D 属于 G2 组 我想通过在左侧添加另一个轴来反映这一点 该轴穿过涡轮机组并相应地标记这些轴 到目前为止我已经尝试了一些