在所有子图上显示 x 刻度和唯一的 y 标签

2024-02-12

我正在绘制共享相同 x 轴的两个子图,但是当我绘制时,我只看到第二个子图上的 x 轴刻度。如何使 x 刻度在两个子图上都可见?

另外,我想为两个子图设置 y 标签,但只有第二个子图可见。您能帮忙在两个子图上显示 y 标签吗?

下面是我的可重现代码。

#!/usr/bin/python3
import pandas as pd
desired_width = 1500
pd.set_option('display.width', desired_width)
import matplotlib.pyplot as plt
import numpy as np


df = pd.DataFrame([{'DATETIME': '2017-09-29 01:00,', 'Population': 1000, 'Temp': 90, 'State': 'California'},
                   {'DATETIME': '2017-09-29 01:00,', 'Population': 2000, 'Temp': 70, 'State': 'Illinois'},
                   {'DATETIME': '2017-09-29 01:00,', 'Population': 3000, 'Temp': 50, 'State': 'Georgia'},
                   {'DATETIME': '2017-09-29 02:00,', 'Population': 2000, 'Temp': 40, 'State': 'California'},
                   {'DATETIME': '2017-09-29 02:00,', 'Population': 6000, 'Temp': 20, 'State': 'Illinois'},
                   {'DATETIME': '2017-09-29 02:00,', 'Population': 4000, 'Temp': 30, 'State': 'Georgia'},
                   {'DATETIME': '2017-09-29 03:00,', 'Population': 3000, 'Temp': 40, 'State': 'California'},
                   {'DATETIME': '2017-09-29 03:00,', 'Population': 4000, 'Temp': 60, 'State': 'Illinois'},
                   {'DATETIME': '2017-09-29 03:00,', 'Population': 2000, 'Temp': 80, 'State': 'Georgia'}])

df.index = df['DATETIME']
df.index = (pd.to_datetime(df.index)).strftime("%m/%d %H:00")

fig, axes = plt.subplots(nrows=2, ncols=1, sharex=True)

df.groupby('State')['Population'].plot(kind='line', linestyle='--', alpha=0.5, marker='o', legend=True, ax=axes[0])
plt.ylabel('Pop')
df.groupby('State')['Temp'].plot(kind='line', linestyle='--', alpha=0.5, marker='o', legend=True, ax=axes[1])
plt.ylabel('Temp')
plt.tick_params(axis='both', which='both', labelsize=7)
plt.tight_layout()
plt.show()

当前图表输出:


正如其他答案所提到的,要获得ylabel显示在两个子图上,您可以在此处使用面向对象的界面axes[0].set_ylabel and axes[1].set_ylabel.

您还应该使用.tick_params在两个轴上为两个子图获得相同大小的刻度标签等

最后,为了让刻度标签显示在第一个子图上,作为循环所有刻度并必须将它们设置为可见的替代方法,您可以通过再提供一个选项来实现相同的效果tick_params: labelbottom=True.

fig, axes = plt.subplots(nrows=2, ncols=1, sharex=True)

df.groupby('State')['Population'].plot(kind='line', linestyle='--', alpha=0.5, marker='o', legend=True, ax=axes[0])
axes[0].set_ylabel('Pop')
df.groupby('State')['Temp'].plot(kind='line', linestyle='--', alpha=0.5, marker='o', legend=True, ax=axes[1])
axes[1].set_ylabel('Temp')
axes[0].tick_params(axis='both', which='both', labelsize=7, labelbottom=True)
axes[1].tick_params(axis='both', which='both', labelsize=7)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在所有子图上显示 x 刻度和唯一的 y 标签 的相关文章

  • 最小二乘法拟合直线 python 代码

    我有一个由 X 和 Y 坐标组成的散点图 我想使用直线的最小二乘拟合来获得最佳拟合线 直线最小二乘拟合是指 如果 x 1 y 1 x n y n 是测量数据对 则最佳直线是y A Bx 这是我的Python代码 number of poin
  • Pandas 连接问题:列重叠但未指定后缀

    我有以下数据框 print df a mukey DI PI 0 100000 35 14 1 1000005 44 14 2 1000006 44 14 3 1000007 43 13 4 1000008 43 13 print df b
  • 无法使用 BeautifulSoup 和 Requests 抓取下拉菜单

    我想抓取百年灵网站上的产品页面以获取各种信息 示例页面 https www breitling com gb en watches navitimer b01 chronograph 46 AB0127211C1A1 https www b
  • Paramiko SSHException 通道已关闭

    我一直在使用 Paramiko 在 Linux Windows 机器上发送命令 它可以很好地在 Ubuntu 机器上远程执行测试 但是 它不适用于 Windows 7 主机 以下是我收到的错误 def unit for event self
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • Python——捕获异常的效率[重复]

    这个问题在这里已经有答案了 可能的重复 Python 常见问题解答 异常有多快 https stackoverflow com questions 8107695 python faq how fast are exceptions 我记得
  • Django 模型字段默认基于另一个模型字段

    我使用 Django Admin 构建一个管理站点 有两张表 一张是ModelA其中有数据 另一个是ModelB里面什么也没有 如果一个模型字段b b in ModelB为None 可以显示在网页上 值为ModelA的场a b 我不知道该怎
  • 按多个键分组并对字典列表的值进行汇总/平均值

    在Python中按多个键进行分组并对字典列表进行汇总 平均值的最Pythonic方法是什么 假设我有一个字典列表 如下所示 input dept 001 sku foo transId uniqueId1 qty 100 dept 001
  • reStructuredText:README.rst 未在 PyPI 上解析

    我有一个托管在 Github 和 PyPI 上的 Python 项目 在 Github 上 https github com sloria TextBlob blob master README rst https github com s
  • 返回上个月的日期时间对象

    如果 timedelta 在它的构造函数中有一个月份参数就好了 那么最简单的方法是什么 EDIT 正如下面指出的那样 我并没有认真考虑这一点 我真正想要的是上个月的任何一天 因为最终我只会获取年份和月份 因此 给定一个日期时间对象 返回的最
  • Pandas:将 pytz.FixedOffset 应用于系列

    我有一个带有timestamp列看起来像这样 0 2020 01 26 05 00 00 08 00 1 2020 01 26 06 00 00 08 00 Name timestamp dtype datetime64 ns pytz F
  • pandas 中连续数据的平行坐标图

    pandas 的 parallel coordinates 函数非常有用 import pandas import matplotlib pyplot as plt from pandas tools plotting import par
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 如何使用 os.chdir 转到减去最后一步的路径?

    例如 一个方法传递了一个路径作为参数 这个路径可能是 C a b c d 如果我想使用 os chdir 更改为 C a b 怎么办 c 没有最后一个文件夹 os chdir 可以接受 命令吗 os chdir 可以采取 作为论点 是的 然
  • 如何在Tensorflow中保存估计器以供以后使用?

    我按照教程 TF Layers 指南 构建卷积神经网络 以下是代码 https github com tensorflow tensorflow blob r1 1 tensorflow examples tutorials layers
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code

随机推荐

  • javascript 中的正则表达式可删除任何不存在的内容:a-z 0-9 和连字符

    提前致谢 我想要一个正则表达式来删除所有非字母数字和连字符的内容 因此允许使用 A Z 0 9 和 另外 我如何将其应用于 Javascript 中的字符串 再次感谢 var str a23a asd str replace a z0 9
  • 使用 clang 的指令 movq 的操作数无效

    我正在使用movq使用基于 LLVM 的 clang 902 0 39 1 编译器的 Intel Core i5 上的 X86 64 汇编指令 Intel 语法中的简化代码 位于 my asm S 文件中 如下所示 intel syntax
  • gradlew:权限被拒绝

    我尝试从命令行运行 gradlew 但经常遇到以下错误 Brendas MacBook Pro appx android brendalogy gradlew compileDebug stacktrace bash gradlew Per
  • 在调度程序任务中使用removeAll()

    在做新的事情之前 我希望我的调度程序任务从数据库中删除所有条目 执行函数如下所示 public function execute objectManager TYPO3 CMS Core Utility GeneralUtility mak
  • 如何结合callLater和addCallback?

    实在是太崩溃了 希望大家怜悯我 reactor callLater 0 myFunction parameter1 addCallback reactor stop reactor run myFunction返回一个延迟的 我希望我想做什
  • 如何自动弹出键盘?

    我有编辑文本字段 我必须在其中输入密码 但我必须推送此字段 如何在不触摸编辑文本的情况下自动弹出键盘 有一个编辑文本 xml 字段
  • Java:类继承自身

    我知道这是毫无意义的 我只是觉得这很有趣 我想更多地了解当您创建一个继承自身的类时会发生什么 从而导致堆栈溢出崩溃 令人惊奇的是 Java 允许您首先进行这样的构造 我只是猜测 但是 JVM 是否将自身置于无限循环中 试图在实例化该类之前解
  • 如何列出 Google Cloud Platform 项目的所有启用的 API 服务

    我们管理着几十个 GCP 项目 但我一直不知道如何在网站上列出每个项目所有启用的 API 服务 有一种方法可以通过 Cloud Shell 运行控制台命令来完成此操作 gcloud services list 如果我访问https cons
  • 实体框架和 Oracle Db 中的 CLOB 字符串

    我有这个模型 public class Teacher public int TeacherID get set public string Name get set public string Surname get set 当模型首次运
  • .htaccess 用于附加 https://www [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经搜索了很长一段时间来获得解决方案或对我的查询的提示 但没有找到任何有价值的东西 基本上我的应用程序是受 SSL 保护的 我想要的只是 如果用户尝
  • 具有可排序功能的 jQuery 树视图

    我只是想知道是否有人知道有什么方法可以让 bassistance 树视图插件与 jQuery UI 的可排序插件一起使用 特别是能够将元素从嵌套 ul 拖放到父 ul 或反之亦然 另外两个要求是我能够防止拖放到指定元素上 例如 class
  • 为 Ruby Resolv.getaddress(ip) 设置超时

    我找不到在 Ruby 文档中 http ruby doc org stdlib 1 9 3 libdoc resolv rdoc Resolv html关于如何使用来自 Ruby std 库的 Resolv 类的类方法 getaddress
  • tv4.validate 始终返回 true。即使我的模式无效,即: var == "dummy"

    tv4 validate 将始终返回 true 无论架构是有效的 JSON 还是只是虚拟字符串 我浏览 stackoverflow 查找相关问题 但 banUnknownProperties 对我没有帮助 正如我所说 我什至尝试将架构变量更
  • 使用cmake编译并包含调试信息

    cmake版本2 8 5 我正在尝试使用 cmake 编译我的项目 但是 当我编译时 我认为我没有包含调试cflags 即 ggdb D DEBUG 当我尝试调试时 没有调试信息 CMakeLists txt 文件是否有任何问题 我有 3
  • ASP.NET MVC 控制器单元测试 - UrlHelper 扩展问题

    尝试做一些控制器在我的 ASP NET MVC 3 Web 应用程序中进行单元测试 我的测试是这样的 TestMethod public void Ensure CreateReviewHttpPostAction RedirectsApp
  • 如何限制WCF服务的请求执行时间?

    WCF 配置中是否有某些内容定义了在服务端执行请求的超时 例如 WCF 服务将在一段时间后停止执行请求 我有一项服务 可以根据客户的输入进行一些工作 在某些情况下 此类调用可能会花费太多时间 我想限制服务端此类请求的执行时间 而不是使用 S
  • 如何使用笔记本中的某些命令在 databricks 集群上安装库?

    实际上 我想在我的 Azure databricks 集群上安装一个库 但我无法使用 UI 方法 因为每次我的集群发生变化并且在转换过程中我无法使用 UI 将库添加到其中 是否有任何 databricks 实用程序命令可以执行此操作 CHE
  • 是否可以在 Vim 中交互式删除匹配的搜索模式?

    我想在 Vim 中寻找一个短语 找到后 我想删除该短语的出现 循环遍历所有事件的最简单方法是什么 通过n 并一一删除匹配项 我不想一次删除所有匹配项 Note 我知道我可以删除一定数量的字符或一定数量的单词 但我想专门删除搜索的匹配项 这可
  • Node.js 中的 cURL 等效项?

    我希望使用来自 Node js 的 HTTP 请求的信息 即调用远程 Web 服务并将响应回显给客户端 在 PHP 中我会使用 cURL 来做到这一点 Node 的最佳实践是什么 有关完整示例 请参阅 HTTP 模块的文档 https no
  • 在所有子图上显示 x 刻度和唯一的 y 标签

    我正在绘制共享相同 x 轴的两个子图 但是当我绘制时 我只看到第二个子图上的 x 轴刻度 如何使 x 刻度在两个子图上都可见 另外 我想为两个子图设置 y 标签 但只有第二个子图可见 您能帮忙在两个子图上显示 y 标签吗 下面是我的可重现代