Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Matplotlib】すべての目盛り(xticks)を表示してPandasのマルチインデックスDataFrameをプロットする方法

PandasのマルチインデックスDataFrameを、すべてのxticks(目盛り)を表示した状態でプロットするには、以下の手順に従います。

  • 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
  • 1000件のサンプルデータからインデックス値を作成します。
  • 軸ラベルを持つ1次元のndarrayを作成します。
  • シリーズの平均値を取得します。
  • gデータフレームをプロットします。
  • 現在の軸に対して目盛り(ticks)と目盛りラベル(ticklabels)を設定します。
  • 図を表示するには、show()メソッドを使用します。

サンプルコード

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

idx = pd.date_range("2020-01-01", periods=1000)
val = np.random.rand(1000)
s = pd.Series(val, idx)

g = s.groupby([s.index.year, s.index.month]).mean()

ax = g.plot()
ax.set_xticks(range(len(g)))
ax.set_xticklabels(["%s-%02d" % item for item in g.index.tolist()],
rotation=45, ha='center')

plt.show()

実行結果

【Matplotlib】すべての目盛り(xticks)を表示してPandasのマルチインデックスDataFrameをプロットする方法

このコードでは、まず2020年1月1日から始まる1000日分の日付インデックスを持つ時系列データを作成し、年と月でグループ化して平均値を算出しています。その後、set_xticks()ですべてのデータ点に目盛りを配置し、set_xticklabels()で「年-月」形式のラベルを45度回転させて表示することで、グラフが見やすくなります。データ点が多い場合でも、この方法を使えばすべてのxticksを確実に表示できます。

  1. Matplotlibで異なるスケールの軸を使ってプロットする方法

    Matplotlibでは、twinx()メソッドを使ってX軸を共有する2つのY軸(双子軸)を作成することで、異なるスケールのデータを同じグラフ上にプロットできます。以下に、その具体的な手順とサンプルコードを紹介します。実装手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使用して、t、data1、data2 のデータポイントを作成します。plt.subplots()で図と最初の軸 ax1 を作成します。色を格納する変数を初期化します。1つ目の軸にX軸・Y軸のラベルを設定します。plot()メソッドで t と data1 をプロットします。tick_p

  2. PandasのDataFrame.plotをMatplotlibのサブプロットに表示する方法

    PandasのデータフレームをMatplotlibのサブプロットに描画したい場合、plot()メソッドにax引数を渡すだけで簡単に実現できます。ここでは、2つのサブプロットに同じデータフレームのグラフを配置する基本的な手順を紹介します。 手順 図のサイズを設定し、figure.autolayoutでサブプロット間・周囲の余白を自動調整します。 plt.subplots()を使って、図(Figure)と2つのサブプロット(Axes)を作成します。 pd.DataFrame()でPandasのデータフレームを作成します。 DataFrame.plot()メソッドにax=ax1やax=ax2を指定