X 軸に日時値を使用して Pandas Dataframe の折れ線グラフを作成する場合、 Pandas と matplotlib の日時処理の間の互換性を考慮することが重要です。デフォルトでは、Pandas と matplotlib は異なる日時形式を使用するため、軸の書式設定で問題が発生する可能性があります。
問題の背景:
コード スニペットは、この問題を示しています: pd の使用.to_datetime を使用して「date」列を datetime オブジェクトに変換し、それをインデックスとして設定すると、Pandas datetime 軸が作成されます。ただし、DateFormatter をこの軸に直接追加しても、期待される日付形式は生成されません。
Ursache:
Pandas は独自の日時形式を使用するため、不一致が発生します。 matplotlib で使用されるものとは異なります。これらの形式を混合しようとすると、予期しない結果が生じる可能性があります。
解決策:
この非互換性に対処するには、2 つのオプションがあります:
1. Pandas で X 軸の互換性を有効にします:
データフレームをプロットするときに x_compat=True を追加します。これは、X 軸に matplotlib の日時形式を使用するように Pandas に指示します。
df.plot(x_compat=True)
2.日時の書式設定には matplotlib を直接使用します。
Pandas の組み込みプロット機能を使用する代わりに、matplotlib を直接使用してプロットを作成できます。これにより、matplotlib の日時書式設定オプションをすべて使用できるようになります。
plt.plot(df['date'], df['ratio1'])
matplotlib の日付モジュールの DateFormatter を使用すると、目的の日付書式設定を実現できます。
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")
これらを利用することで、メソッドを使用すると、折れ線プロットの X 軸に日付が適切に表示されるようになり、Pandas と matplotlib の日時処理間の不一致を回避できます。
以上がPandas ライン プロットの X 軸に日付を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。