Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memaparkan Tarikh dengan Betul pada paksi-x Plot Garis Pandas?

Bagaimana untuk Memaparkan Tarikh dengan Betul pada paksi-x Plot Garis Pandas?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 18:49:02693semak imbas

How to Correctly Display Dates on the x-axis of a Pandas Line Plot?

Memaparkan Tarikh pada xAxis dalam Plot Garis Bingkai Data Pandas

Pengenalan

Untuk memaparkan tarikh pada paksi-x plot garis Pandas, set_index () kaedah boleh digunakan untuk menukar lajur yang mengandungi nilai tarikh ke dalam indeks DataFrame. Walau bagaimanapun, apabila menggunakan fungsi DateFormatter matplotlib untuk memformat tarikh, isu tertentu mungkin timbul.

Isu DateFormatter

Imej di bawah menggambarkan isu dengan menambahkan DateFormatter pada kod:

[Imej plot baris dengan pemformatan tarikh yang salah]

Perhatikan bahawa tarikh bermula pada 5-24 dan bukannya 5-25, dan Khamis dilabel secara salah untuk 5-25 tahun 2017. Ini selalunya disebabkan oleh zon waktu- isu berkaitan atau ketidakserasian antara panda dan utiliti datetime matplotlib.

Ketidakserasian Pandas dan Matplotlib Datetime Objects

Objek datetime panda dan matplotlib umumnya tidak serasi. Apabila cuba menggunakan objek tarikh matplotlib pada paksi tarikh yang dibuat dengan panda, isu boleh berlaku.

Salah satu sebab untuk ini ialah objek datetime panda ditukar kepada nombor titik terapung yang mewakili masa dalam hari sejak 0001-01 -01 UTC, tambah 1. Format ini berbeza daripada format datetime matplotlib.

Penyelesaian

Menggunakan x_compat

Untuk menyelesaikan isu pemformatan tarikh, argumen x_compat=True boleh dihantar ke kaedah plot(). Ini mengarahkan panda untuk tidak menggunakan format datetimenya sendiri, membenarkan penanda, pencari dan pemformat matplotlib digunakan.

Memplot Datetime dengan Matplotlib

Sebagai alternatif, jika pemformatan datetime yang lebih tepat diperlukan, matplotlib boleh digunakan untuk memplot dan memformat. Coretan kod berikut menunjukkan pendekatan ini:

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

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

# Create the line plot
plt.plot(df['date'], df['ratio1'])

# Set major locator and formatter for the x-axis
plt.gca().xaxis.set_major_locator(dates.DayLocator())
plt.gca().xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))

# Invert the x-axis for chronological order
plt.gca().invert_xaxis()

# Autofmt the x-axis for optimal placement of dates
plt.gcf().autofmt_xdate(rotation=0, ha="center")

# Display the plot
plt.show()</code>

Kod yang disemak ini akan menjana plot baris dengan tarikh yang diformatkan dengan tepat pada paksi-x.

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Tarikh dengan Betul pada paksi-x Plot Garis 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