首頁 >後端開發 >Python教學 >如何在 Pandas DataFrame 線圖的 X 軸上正確顯示日期?

如何在 Pandas DataFrame 線圖的 X 軸上正確顯示日期?

Patricia Arquette
Patricia Arquette原創
2024-10-28 08:49:02928瀏覽

How to Display Dates Correctly on the X-Axis of a Pandas DataFrame Line Plot?

Pandas Dataframe 線圖在x 軸上顯示日期

問題:

問題:

問題:

問題:

問題:
  1. 問題:

    問時x 軸上帶有日期的Pandas DataFrame,matplotlib 函式庫會產生不正確的格式和與資料不正確對應的日期。
  2. 答案:

    不相容性Pandas 和 Matplotlib 的日期時間實用程式之間的差異是此問題的根本原因。 Pandas 對日期時間物件使用非標準浮點表示,這與 Matplotlib 自己的日期格式化方法不相容。

  3. 解決方案:

要解決這個問題,有兩種可能的方法:
<code class="python">import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates

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

usePandas = True

# Either use Pandas
if usePandas:
    df = df.set_index('date')
    ax = df.plot(x_compat=True, figsize=(6, 4))
    ax.xaxis.set_major_locator(dates.DayLocator())
    ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))
    ax.invert_xaxis()
    ax.get_figure().autofmt_xdate(rotation=0, ha="center")

# or use Matplotlib
else:
    fig, ax = plt.subplots(figsize=(6, 4))
    ax.plot('date', 'ratio1', data=df)
    ax.xaxis.set_major_locator(dates.DayLocator())
    ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))
    fig.invert_xaxis()

plt.show()</code>

停用Pandas 日期格式:透過在繪製DataFrame 時設定x_compat=True,Pandas 將使用Matplotlib 的內部日期格式化機制,允許更精確地控制x 軸格式。 專門使用Matplotlib 繪圖和格式化:而不是依賴在Pandas 上進行日期繪圖,您可以使用Matplotlib 自己的方法來處理日期值和格式。這提供了更大的靈活性,並允許您根據需要自訂日期格式。 以下是示範這兩種方法的更新範例:透過使用其中任何一種方法,您可以有效地在Pandas DataFrame 圖的x軸上顯示具有準確格式的日期時間值。

以上是如何在 Pandas DataFrame 線圖的 X 軸上正確顯示日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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