插件窝 干货文章 Pylot图表横坐标:如何只显示0-24小时而不显示日期?

Pylot图表横坐标:如何只显示0-24小时而不显示日期?

横坐标 显示 时间序列 设置 990    来源:    2025-03-16

在Pylot(假设你指的是Matplotlib,因为Pylot并不是一个常见的Python库)中,如果你想要在图表中只显示0-24小时而不显示日期,你可以通过以下步骤来实现:

  1. 确保你的数据是时间序列:首先,确保你的数据是以时间为横坐标的。你可以使用datetime模块来处理时间数据。

  2. 设置横坐标为时间格式:使用matplotlib.dates模块来格式化横坐标,使其只显示时间而不显示日期。

  3. 自定义横坐标的显示格式:通过DateFormatter来设置横坐标的显示格式,只显示小时部分。

以下是一个示例代码,展示如何实现这一点:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, timedelta

# 示例数据:生成24小时的时间序列
start_time = datetime(2023, 10, 1, 0, 0)  # 2023年10月1日 00:00
times = [start_time + timedelta(hours=i) for i in range(24)]
values = range(24)  # 示例数据,假设每个小时有一个值

# 创建图表
fig, ax = plt.subplots()

# 绘制数据
ax.plot(times, values)

# 设置横坐标为时间格式
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))

# 设置横坐标的范围为0-24小时
ax.set_xlim([times[0], times[-1]])

# 自动调整横坐标的刻度
ax.xaxis.set_major_locator(mdates.HourLocator(interval=1))

# 旋转横坐标标签以便更好地显示
plt.xticks(rotation=45)

# 显示图表
plt.show()

代码解释:

  • times:生成一个包含24小时的时间序列。
  • ax.plot(times, values):绘制时间序列数据。
  • ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M')):设置横坐标的显示格式为“小时:分钟”。
  • ax.set_xlim([times[0], times[-1]]):设置横坐标的范围为0-24小时。
  • ax.xaxis.set_major_locator(mdates.HourLocator(interval=1)):设置横坐标的刻度为每小时一个刻度。
  • plt.xticks(rotation=45):旋转横坐标标签以便更好地显示。

通过这种方式,你可以在Matplotlib图表中只显示0-24小时而不显示日期。