ホームページ >バックエンド開発 >Python チュートリアル >matplotlib で日時軸を書式設定して年と月のみを表示するにはどうすればよいですか?

matplotlib で日時軸を書式設定して年と月のみを表示するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 18:46:30265ブラウズ

How can I format a datetime axis in matplotlib to show only year and month?

日時軸の形式の調整

視覚化したい日時インデックスを持つシリーズがあるシナリオでは、 「yyyy-mm」や「2016 March」などの単純な形式を選択したにもかかわらず、グラフには、時、分、秒を含むタイムスタンプが表示されます。

この問題に対処し、目的の形式を実現するには、次の機能を活用できます。 matplotlib によって提供されます。特に、日時軸はフォーマッタを使用してカスタマイズできます。これらのフォーマッタを使用すると、X 軸の目盛りラベルをどのように表示するかを指定できます。

フォーマッタの使用方法を示す例を次に示します。

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

# Sample data with hourly timestamps
N = 30
drange = pd.date_range("2014-01", periods=N, freq="H")
np.random.seed(365)
values = {'values':np.random.randint(1,20,size=N)}
df = pd.DataFrame(values, index=drange)

# Create a plot with incorrect formatting
fig, ax = plt.subplots()
ax.plot(df.index, df.values)
ax.set_xticks(df.index)

# Use formatters to achieve the desired formatting
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m"))
plt.xticks(rotation=90)

# Display the updated plot with the desired formatting
plt.show()</code>

この例では、まず次のことを行います。時間ごとのタイムスタンプを含むサンプル データフレームを作成します。次に、matplotlib.dates の DateFormatter を使用して、X 軸の目盛りラベルが年と月のみを表す "%Y-%m" 形式になるように指定します。最後に、xticks を呼び出して目盛りラベルを回転させて読みやすくします。

このアプローチを実装すると、日時軸の形式を効果的にカスタマイズでき、希望の表示要件に合わせて調整できます。

以上がmatplotlib で日時軸を書式設定して年と月のみを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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