根據日期繪製資訊可能是處理時間序列資料時的常見任務。但是,轉換和繪製日期有時會導致錯誤。
問題:轉換和繪製日期
在提供的範例中,使用者遇到了「ValueError:year」嘗試在x 軸上繪製日期時出現「超出範圍”錯誤。這個問題是由轉換過程引起的,特別是在使用 num2date 時。
解決方案:利用繪圖函數
要解決此問題,請考慮使用繪圖函數而不是繪圖日期。此方法會取得日期清單並自動將它們識別為日期,從而允許您繞過轉換步驟。
第 1 步:將日期轉換為 datetime.date 物件
將日期字串轉換為 datetime.date 的實例以便於處理。例如:
<code class="python">import datetime as dt dates = ['01/02/1991', '01/03/1991', '01/04/1991'] x = [dt.datetime.strptime(d, '%m/%d/%Y').date() for d in dates]</code>
步驟2:配置X 軸進行日期格式
使用matplotlib 中的DateFormatter 和DayLocator 設定x 軸以正確顯示日期.dates:
<code class="python">import matplotlib.pyplot as plt import matplotlib.dates as mdates plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) plt.gca().xaxis.set_major_locator(mdates.DayLocator())</code>
第3 步:產生繪圖
最後,使用設定的x 軸與y 軸資料繪製資料:
<code class="python">plt.plot(x, y) plt.gcf().autofmt_xdate()</code>
此方法消除了轉換錯誤並在x 軸上正確繪製日期,提供基於時間的資料的清晰表示。
以上是如何在 Matplotlib 中正確繪製 X 軸上的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!