Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memaparkan Tarikh dengan Betul pada X-Axis Plot Garisan DataFrame Pandas?

Bagaimana untuk Memaparkan Tarikh dengan Betul pada X-Axis Plot Garisan DataFrame Pandas?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 08:49:02788semak imbas

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

Tarikh paparan plot baris data Pandas pada xaxis

Masalah:

Apabila cuba merancang Pandas DataFrame dengan tarikh pada paksi-x, perpustakaan matplotlib menghasilkan pemformatan yang tidak tepat dan tarikh yang tidak sepadan dengan betul dengan data.

Jawapan:

Ketidakserasian antara utiliti datetime Pandas dan Matplotlib adalah punca masalah ini. Pandas menggunakan perwakilan titik terapung bukan standard untuk objek datetime, yang tidak serasi dengan kaedah pemformatan tarikh Matplotlib sendiri.

Penyelesaian:

Untuk menyelesaikan isu ini, terdapat ialah dua pendekatan yang mungkin:

  1. Lumpuhkan pemformatan tarikh Pandas:

    Dengan menetapkan x_compat=True apabila merancang DataFrame, Pandas akan menggunakan tarikh dalaman Matplotlib mekanisme pemformatan, membenarkan kawalan yang lebih tepat ke atas pemformatan paksi-x.

  2. Gunakan Matplotlib secara eksklusif untuk merancang dan memformat:

    Daripada bergantung pada Pandas untuk plot tarikh, anda boleh menggunakan kaedah Matplotlib sendiri untuk mengendalikan nilai tarikh dan pemformatan. Ini memberikan fleksibiliti yang lebih besar dan membolehkan anda menyesuaikan pemformatan tarikh mengikut keperluan.

Berikut ialah contoh dikemas kini yang menunjukkan kedua-dua pendekatan:

<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>

Dengan menggunakan salah satu daripada ini pendekatan, anda boleh memaparkan nilai masa tarikh dengan berkesan pada paksi-x plot Pandas DataFrame dengan pemformatan yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Tarikh dengan Betul pada X-Axis Plot Garisan DataFrame Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn