Matplotlibを使ってPandasデータフレームの特定の行をプロットする方法
Pandasデータフレームの特定の行だけを抽出してグラフに描画したい場面は、データ分析の現場でよくあります。本記事では、MatplotlibとPandasを組み合わせて、データフレームから必要な行のみをスライスし、プロットする手順をわかりやすく解説します。
実装の手順
- まず、図のサイズ(figure size)を設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 次に、Pandasのデータフレーム df を作成します。データフレームは、2次元でサイズが可変、かつ異なる型のデータを格納できる表形式のデータ構造です。
- iloc() 関数を使ってデータフレームをスライスし、プロットしたい特定の行を取り出します。
- 最後に、show() メソッドを呼び出して図を表示します。
コード例
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame(np.random.randn(10, 5), columns=list('abcde'))
df.iloc[0:6].plot(y='e')
print(df.iloc[0:6])
# plt.show()実行結果
このコードでは、10行×5列のランダムなデータを持つデータフレームを作成しています。iloc[0:6] は先頭から6行目まで(インデックス0〜5)をスライスするため、コードを実行するとコンソールには最初の6行が出力されます。
a b c d e 0 1.826023 0.606137 0.389687 -0.497605 0.164785 1 0.571941 2.324981 -1.154445 0.757724 0.570713 2 -1.328481 1.248171 -0.849694 -1.133029 -0.977927 3 -0.509296 1.086251 0.809288 0.409166 -0.080694 4 0.973164 1.328212 0.858214 0.997309 -0.375427 5 1.014649 1.480790 -1.451903 -0.306659 -0.382312
グラフを表示するには
上記のコードでは、最終行の plt.show() がコメントアウトされています。この行のコメントを外して再度実行すると、スライスされたデータフレーム(先頭6行)の「e」列の値が折れ線グラフとして描画されます。

ポイントまとめ
- iloc[] は行番号(位置)ベースでデータを抽出するため、特定範囲の行を簡単に切り出せます。
- plot(y='e') のように引数を指定すると、プロット対象の列を選択できます。
- Jupyter Notebook以外の環境では、
plt.show()を忘れるとグラフが表示されないので注意しましょう。
-
【Matplotlib】すべての目盛り(xticks)を表示してPandasのマルチインデックスDataFrameをプロットする方法
PandasのマルチインデックスDataFrameを、すべてのxticks(目盛り)を表示した状態でプロットするには、以下の手順に従います。図のサイズを設定し、サブプロット間および周囲のパディングを調整します。1000件のサンプルデータからインデックス値を作成します。軸ラベルを持つ1次元のndarrayを作成します。シリーズの平均値を取得します。gデータフレームをプロットします。現在の軸に対して目盛り(ticks)と目盛りラベル(ticklabels)を設定します。図を表示するには、show()メソッドを使用します。サンプルコードimport numpy as np import matplo
-
PandasとMatplotlibでハッチング付きの棒グラフを描画する方法
Pandasを使ってハッチング(模様)付きの棒グラフを描画するには、Matplotlibのパッチ機能を利用します。以下の手順に従うことで、各バーに異なる模様を設定したグラフを作成できます。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。Pandasを使用して、2つの列を持つデータフレームを作成します。現在の図にサブプロットとして軸(Axes)を追加します。kind=bar を指定して棒グラフを描画します。使用するハッチングパターンのリストを作成します。bars.patches でバーのパッチオブジェクトを取得します。各パッチを反復処理し、set_hatch()