Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memaparkan Tarikh dengan Betul pada paksi-x Plot Garis Pandas?
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.
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.
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.
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.
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!