1. ホーム
  2. python

[解決済み] Pythonのmatplotlibで日付をX軸にプロットする

2023-02-23 18:07:01

質問

日付に対して情報をプロットしようとしています。私は、"01/02/1991"というフォーマットで日付のリストを持っています。

私は以下のようにしてそれらを変換しました。

x = parser.parse(date).strftime('%Y%m%d'))

というのは 19910102

次に、num2date を使ってみました。

import matplotlib.dates as dates
new_x = dates.num2date(x)

プロットする。

plt.plot_date(new_x, other_data, fmt="bo", tz=None, xdate=True)

しかし、エラーが発生します。それは、"ValueError: year is out of range"と言っています。何か解決策はありますか?

どのように解決するのですか?

KyssTaoさん(@KyssTao)がおっしゃっているように。 help(dates.num2date) が言っているのは x は0001-01-01からの日数に1を足した日数を表す浮動小数点でなければならないとしています。したがって 19910102 は 2/Jan/1991 ではありません。0001-01-01 から 19910101 日を数えた場合、54513 年かそれに近い年になります (1 年の日数である 365.25 で割る) からです。

使用方法 datestr2num で代用できます。 help(dates.datestr2num) ):

new_x = dates.datestr2num(date) # where date is '01/02/1991'