线图中 x 轴标签居中

2023-12-05

我正在构建一个包含两条线的线图,一条用于高温,另一条用于低温。 x 轴基于日期时间格式的一整年的天数(2014-01-01 等)。然而,我在几个月内(一月、二月、三月等)更改了标签,而不是数据。问题是第一个标签“Jan”位于原点中。我想要的是将所有标签向右移动以使它们在刻度之间居中.

fig, ax = plt.subplots()

plt.plot(x, y1)
plt.plot(x, y2)

# Change x-axis from %y-%m-%d format to %m:
monthsFmt = mdates.DateFormatter('%m')
plt.gca().xaxis.set_major_formatter(monthsFmt)

# Replace numeric x-axis labels (1,2,3, ..., 12) for abbreviations of months ('Jan', 'Feb', 'Mar', etc.):
labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
ax.set_xticklabels(labels)

# CODE GOES HERE TO CENTER X-AXIS LABELS...

# Render plot:
plt.show()

这是我正在寻找的结果:

enter image description here


按照 DavidG 发布的帖子中的建议使用小刻度应该可行。下面是我针对您的具体问题进行了调整的 MWE,强制主要刻度线出现在每个月的第一天,并使用次要刻度线将标签放置在主要刻度线之间:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import datetime

# Generate some data for example :

yr = 2014
fig, ax = plt.subplots()

x0 = datetime.datetime(yr, 1, 1)
x = np.array([x0 + datetime.timedelta(days=i) for i in range(365)])

y1 = np.sin(2*np.pi*np.arange(365)/365) + np.random.rand(365)/5
y2 = np.sin(2*np.pi*np.arange(365)/365) + np.random.rand(365)/5 - 1

# Draw high and low temperatures lines :

ax.plot(x, y1, color='#c83c34')
ax.plot(x, y2, color='#28659c')
ax.fill_between(x, y2, y1, facecolor='#daecfd', alpha=0.5)

# Force the major ticks position on the first of each month and hide labels:

xticks = [datetime.datetime(yr, i+1, 1) for i in range(12)]
xticks.append(datetime.datetime(yr+1, 1, 1))
ax.set_xticks(xticks)
ax.tick_params(axis='both', direction='out', top=False, right=False)
ax.axis([xticks[0], xticks[-1], -2.5, 1.5])
ax.set_xticklabels([])

# CODE GOES HERE TO CENTER X-AXIS LABELS...

labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
mticks = ax.get_xticks()
ax.set_xticks((mticks[:-1]+mticks[1:])/2, minor=True)
ax.tick_params(axis='x', which='minor', length=0)
ax.set_xticklabels(labels, minor=True)
fig.tight_layout()

plt.show()

which results in: enter image description here

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

线图中 x 轴标签居中 的相关文章

  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 多处理中的动态池大小?

    有没有办法动态调整multiprocessing Pool尺寸 我正在编写一个简单的服务器进程 它会产生工作人员来处理新任务 使用multiprocessing Process对于这种情况可能更适合 因为工作人员的数量不应该是固定的 但我需
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • matplotlib 未检测到字体

    当我使用fontname 与Humor Sans字体我收到此错误 usr lib python3 5 site packages matplotlib font manager py 1288 UserWarning findfont Fo
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 如何通过 python 多处理利用所有核心

    我一直在摆弄Python的multiprocessing现在已经使用了一个多小时的功能 尝试使用并行化相当复杂的图形遍历函数multiprocessing Process and multiprocessing Manager import
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发
  • 定义在文本小部件中双击时选择哪些字符

    在 Windows 上 双击文本小部件中的单词也将选择连接的标点符号 有什么方法可以定义您想要选择的角色吗 tcl wordchars该变量的值是一个正则表达式 可以设置它来控制什么被视为 单词 字符 例如 通过双击 Tk 中的文本来选择单

随机推荐

  • 如何分析混淆矩阵?

    当我打印 scikit learn 的混淆矩阵时 我收到一个非常巨大的矩阵 我想分析什么是真阳性 真阴性等 我该怎么做 这就是我的混淆矩阵的样子 我希望更好地理解这一点 4015 336 0 0 0 2 228 2704 0 0 0 0 4
  • 在 Java Swing 中检查点是否在线

    我画了一条线 然后画了一个点 然后我想检查该点是否在线上 我在数组中获取了一条线坐标 因为有多条线 我想检查最后一行的当前点吗 if positionX1 positionX2 positionY1 positionY2 float m l
  • 使用 C# 的电子邮件中的多个附件文件

    如何使用 C 在电子邮件中附加多个文件 MailMessage mail new MailMessage SmtpClient SmtpServer new SmtpClient smtp gmail com get the userID
  • 如何在ubuntu上编译curlpp?

    下面是使用curl的简单test c代码 include
  • 使用 matcher() 匹配字符串中的小数

    我有一个关于匹配器的问题 目前我正在尝试读取一个字符串并将所有数字存储到一个数组中 我的问题是 你如何尝试匹配整数和小数 我有一个双打数组 名为 double thisArray new double 20 在这个数组中 我试图存储从字符串
  • HTML5 Web 语音 API 无法在本地运行

    我试图让这段代码工作 但不知道为什么它在本地不起作用 我在 CodePen io 上尝试了同样的方法 它有效
  • jQuery 提交表单无需重新加载页面

    好的 所以我正在尝试使用 jquery 和经典 ASP 从我的网站创建一个新的登录表单 截至目前 我的文档中有一个包含 div 该 div 设置为隐藏 然后当用户选择登录链接时 div 将淡出并覆盖带有表单的页面 如果用户单击提交 页面将
  • 处理禁用节点上的事件

    有什么方法可以处理鼠标单击 例如在禁用的元素上 我的任务是禁用列表并在双击它后将其启用 禁用的节点不会接收鼠标或按键事件 See the 官方文档 您可以将该节点包装到另一个节点中 并在那里处理鼠标事件 以防子节点被禁用
  • 如何在 asp.net 3.5 中会话超时时将用户重定向到默认页面

    我只想在 asp net 3 5 中会话过期时将用户重定向到主页 Default aspx 我只是用网络用户控制来做到这一点 但钢它不能完美地工作 所以我只想用 web config 来做到这一点
  • 多态性不适用于使用 MessagePack-Csharp nuget 的集合元素

    我无法反序列化实例之间具有继承关系的元素集合 有人遇到过这个问题吗 所以我的用例是这样的 我的模型与此类似 DataContract public class Item DataMember public int Id get set Da
  • 索引签名参数类型不能是联合类型。考虑使用映射对象类型代替

    我正在尝试使用以下模式 enum Option ONE one TWO two THREE three interface OptionRequirement someBool boolean someString string inter
  • 如何在自定义编译表达式中使用bindparam()?

    我的代码基于 zzzeeek 的回答这个问题 我对其进行了一些扩展 因此它考虑了 Postgresql 的 NULL 和 ARRAY class values FromClause named with column True def in
  • 如何获取XMLHttpRequest的响应?

    我想知道如何使用 XMLHttpRequest 加载远程 URL 的内容并将所访问站点的 HTML 存储在 JS 变量中 比如说 如果我想加载并alert HTMLhttp foo com bar php 我该怎么做 你可以通过以下方式获取
  • 重复 B 列中的值,直到 python 中 A 列发生变化

    我是 python 新手 有一个疑问 我需要在 B 列中重复该值 直到 A 列发生更改 这是示例数据 A B 18 1 18 0 18 0 24 2 24 0 24 0 24 0 10 3 10 0 10 0 我想要怎样的输出 Column
  • 如何解决解析带有西里尔字母符号的html文件的问题?

    我有一些带有 span 元素的 html 文件 span class one Text span some text span class two span 要获取 一些文本 coding cp1251 import lxml from l
  • ASP.NET Core 应用程序在发布到 Azure 后无法运行

    我有一个 ASP NET Core 应用程序 在本地运行良好 然而 当我publish Web 部署 将站点部署到 Azure 我得到403 You do not have permission to view this directory
  • 如何以编程方式创建和使用 ASP.NET 中的复选框列表?

    我有一个包含内容表的页面 我需要允许用户选择要处理的行 我已经弄清楚如何在表格中添加一列复选框 但我似乎无法弄清楚如何测试提交表单时是否选中它们 如果它们是静态元素 我就可以检查 dothis theCheckBox但它们是通过编程生成的
  • 编辑时,useState 在 CRUD 函数中重置为 initstate - React Star Component

    我正在尝试创建一个 CRUD 人员功能 其中每个人都拥有一系列技能 我想要一个功能 您可以在其中添加 编辑 删除特定人员的技能 每个数组由一个字符串形式的技能元素和一个整数形式的星号元素组成 我制作了一些动态输入字段 带有添加和删除功能 用
  • 如何访问CodeIgniter中的静态资源?

    我正在将 CodeIgniter 用于项目 文件夹结构 htdocs NewProject application 我创建了一个名为 Home 的控制器 applications controllers home php 我创建了一个视图
  • 线图中 x 轴标签居中

    我正在构建一个包含两条线的线图 一条用于高温 另一条用于低温 x 轴基于日期时间格式的一整年的天数 2014 01 01 等 然而 我在几个月内 一月 二月 三月等 更改了标签 而不是数据 问题是第一个标签 Jan 位于原点中 我想要的是将