ホームページ >バックエンド開発 >Python チュートリアル >Pandas ライン プロットの X 軸に日付を表​​示するにはどうすればよいですか?

Pandas ライン プロットの X 軸に日付を表​​示するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 10:04:02264ブラウズ

How to Display Dates on the X-Axis of a Pandas Line Plot?

Pandas Dataframe の折れ線グラフで x 軸に日付を表​​示

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。