ホームページ >バックエンド開発 >Python チュートリアル >Pandas と Matplotlib の間の日時の非互換性の問題を解決するには?

Pandas と Matplotlib の間の日時の非互換性の問題を解決するには?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 10:48:011106ブラウズ

How to Resolve Datetime Incompatibility Issues Between Pandas and Matplotlib?

Pandas と Matplotlib Datetime オブジェクト間の非互換性

Pandas Dataframe ライン プロットの X 軸に日付を表​​示しようとすると、不一致が発生する可能性がありますこれは、Pandas と Matplotlib 日時ユーティリティの間に固有の非互換性があるために発生します。その結果、問題のある視覚化が発生する可能性があります。

Matplotlib に DateFormatter を追加すると、間違った開始日や間違った曜日ラベルなどの問題が発生する可能性があります。これは、Pandas が Matplotlib で使用される形式とは異なる独自の日時形式を採用しているためです。

この競合を解決するには、Pandas と Matplotlib の日時オブジェクトを混合しないことをお勧めします。あるいは、プロット時に x_compat パラメーターを True に設定することで、デフォルトの日時形式を使用しないように Pandas に指示することもできます。

日付形式に Matplotlib を使用する

高度な日付形式の場合機能を使用するには、Matplotlib のネイティブ関数を利用することを検討してください。このアプローチにより、X 軸の日付の書式設定の柔軟性と制御が向上します。

<code class="python">import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates

# Dataframe creation and formatting
df = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]})
df['date'] = pd.to_datetime(df['date'])

# Matplotlib plotting using object-oriented API
fig, ax = plt.subplots(figsize=(6,4))
ax.plot('date', 'ratio1', data=df)

# Date formatting using Matplotlib functions
ax.xaxis.set_major_locator(dates.DayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))

# Additional formatting and display
ax.invert_xaxis()
fig.autofmt_xdate(rotation=0, ha="center")
plt.show()</code>

このコード スニペットは、Matplotlib のオブジェクト指向 API の使用法を示しています。これにより、プロットとその結果をより詳細に制御できます。要素。 Figure と Axes を明示的に定義することで、カスタム書式設定を X 軸に適用できます。

日付書式文字列の指定など、DateFormatter オブジェクトのパラメータを調整することで、日付書式設定をさらにカスタマイズできます。回転または配置、表示される日付の数を制御します。

以上がPandas と Matplotlib の間の日時の非互換性の問題を解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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