在您希望可视化具有日期时间索引的系列的情况下,您可能会遇到以下情况:尽管您更喜欢“yyyy-mm”或“2016 年 3 月”等更简单的格式,但图表仍显示包括小时、分钟和秒在内的时间戳。
要解决此问题并实现所需的格式,我们可以利用以下功能由 matplotlib 提供。特别是,可以使用格式化程序自定义日期时间轴。这些格式化程序允许您指定 x 轴上的刻度标签应如何显示。
这是一个演示格式化程序使用的示例:
<code class="python">import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates # Sample data with hourly timestamps N = 30 drange = pd.date_range("2014-01", periods=N, freq="H") np.random.seed(365) values = {'values':np.random.randint(1,20,size=N)} df = pd.DataFrame(values, index=drange) # Create a plot with incorrect formatting fig, ax = plt.subplots() ax.plot(df.index, df.values) ax.set_xticks(df.index) # Use formatters to achieve the desired formatting ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m")) ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m")) plt.xticks(rotation=90) # Display the updated plot with the desired formatting plt.show()</code>
在此示例中,我们首先创建一个带有每小时时间戳的示例 DataFrame。然后,我们使用 matplotlib.dates 中的 DateFormatter 指定 x 轴上的刻度标签应采用“%Y-%m”格式,仅表示年份和月份。最后,我们调用 xticks 来旋转刻度标签以获得更好的可读性。
通过实现这种方法,您可以有效地自定义日期时间轴的格式,确保它符合您所需的显示要求。
以上是如何在 matplotlib 中格式化日期时间轴以仅显示年份和月份?的详细内容。更多信息请关注PHP中文网其他相关文章!