首頁  >  文章  >  後端開發  >  如何解決 Pandas 和 Matplotlib 之間的日期時間不相容問題?

如何解決 Pandas 和 Matplotlib 之間的日期時間不相容問題?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 10:48:01997瀏覽

How to Resolve Datetime Incompatibility Issues Between Pandas and Matplotlib?

Pandas 和Matplotlib 日期時間物件之間的不相容性

嘗試在Pandas Dataframe 線圖的x 軸上顯示日期時,可能會出現差異由於Pandas 和Matplotlib 日期時間實用程式之間固有的不相容性而出現。因此,可能會出現有問題的可視化。

在 Matplotlib 中加入 DateFormatter 可能會帶來問題,例如不正確的開始日期和不正確的工作日標籤。這是因為 Pandas 使用自己的日期時間格式,與 Matplotlib 使用的格式不同。

要解決此衝突,建議不要混合使用 Pandas 和 Matplotlib 日期時間物件。或者,您可以透過在繪圖時將 x_compat 參數設為 True 來指示 Pandas 不要使用其預設日期時間格式。

使用 Matplotlib 進行日期格式

用於進階日期格式功能,請考慮利用 Matplotlib 的本機函數。這種方法為 x 軸上的日期格式提供了更大的靈活性和控制。

<code class="python">import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates

# Dataframe creation and formatting
df = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]})
df['date'] = pd.to_datetime(df['date'])

# Matplotlib plotting using object-oriented API
fig, ax = plt.subplots(figsize=(6,4))
ax.plot('date', 'ratio1', data=df)

# Date formatting using Matplotlib functions
ax.xaxis.set_major_locator(dates.DayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))

# Additional formatting and display
ax.invert_xaxis()
fig.autofmt_xdate(rotation=0, ha="center")
plt.show()</code>

此程式碼片段示範了 Matplotlib 物件導向的 API 的使用,它提供了對繪圖及其繪圖的更精細的控制。元素。透過明確定義圖形和座標軸,可以將自訂格式套用至 x 軸。

您可以透過調整 DateFormatter 物件的參數來進一步自訂日期格式,例如指定日期格式字串、啟用旋轉或對齊,以及控制顯示的日期數量。

以上是如何解決 Pandas 和 Matplotlib 之間的日期時間不相容問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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