首頁 >後端開發 >Python教學 >如何在 matplotlib 中格式化日期時間軸以僅顯示年份和月份?

如何在 matplotlib 中格式化日期時間軸以僅顯示年份和月份?

DDD
DDD原創
2024-10-27 18:46:30261瀏覽

How can I format a datetime axis in matplotlib to show only year and month?

調整日期時間軸的格式

在您希望可視化具有日期時間索引的系列的情況下,您可能會遇到以下情況:儘管您更喜歡「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn