seaborn绘图如何设置X轴仅显示小时和分钟?
问题说明
现有测试数据集定义如下:
import pandas as pd df = pd.DataFrame({"Date":["2015-02-02 14:19:00","2015-02-02 14:22:00","2015-02-17 14:57:00","2015-02-17 14:58:59"],"Occurrence":[1,0,1,1]}) df["Date"] = pd.to_datetime(df["Date"])
使用seaborn绘制折线图的初始代码:
import seaborn as sns sns.set_theme(style="darkgrid") sns.lineplot(x="Date", y="Occurrence", data=df)
默认生成的图表X轴会展示包含年月日在内的完整日期信息,需求为X轴仅展示小时、分钟内容,隐藏年月日部分。
初始代码运行效果示意图
实现方式
借助matplotlib内置的日期格式化器修改X轴刻度显示规则即可,不需要修改原始时间字段,在原有绘图逻辑后追加以下代码:
import matplotlib.pyplot as plt import matplotlib.dates as mdates # 获取当前绘图轴实例 ax = plt.gca() # 配置X轴刻度时间格式为「小时:分钟」 ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M')) plt.show()
- 如果时间跨度较大出现刻度标签重叠,可额外配置刻度间隔,例如设置每5分钟显示一个刻度:
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=5)) - 格式化字符串
%H:%M对应24小时制的小时+分钟,若需要12小时制可替换为%I:%M %p,会附带AM/PM标识。
内容的提问来源于stack exchange,提问作者JAdel
相关产品推荐
相关产品推荐

