Pandasでプロットの外側に凡例を配置する方法
Pandasで作成したグラフの凡例を、プロット領域の外側に配置したいケースはよくあります。本記事では、matplotlibのlegend()メソッドとbbox_to_anchor引数を使って、凡例を自由な位置に配置する方法を解説します。
実装の手順
Pandasでプロットの外側に凡例を配置するには、以下の手順を実行します。
「Column 1」と「Column 2」をキーとする辞書 d を作成します。
DataFrame(d) を使ってデータフレームを作成します。
スタイルのリストを指定して、データフレームをプロットします。
legend() メソッドを使って図に凡例を配置します。bbox_to_anchor キーワード引数を使用すると、凡例の位置を手動で高精度に制御できます。例えば、軸(axes)基準の凡例を図(figure)全体の右上隅に配置したい場合は、目的の位置とその座標系を指定するだけで実現できます。
図を表示するには、show() メソッドを使用します。
コード例
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
d = {'Column 1': [i for i in range(10)],
'Column 2': [i * i for i in range(10)]}
df = pd.DataFrame(d)
df.plot(style=['o', 'rx'])
plt.legend(bbox_to_anchor=(1.0, 1.0))
plt.show()
出力結果
上記のコードを実行すると、凡例がプロット領域の外側(図の右上)に配置されたグラフが表示されます。bbox_to_anchor=(1.0, 1.0) は、凡例のアンカー位置を座標 (1.0, 1.0)、つまり図の右上隅に設定することを意味します。
この方法を応用すれば、bbox_to_anchor の値を調整することで、凡例を図の下部や右側など、任意の場所に柔軟に配置できます。また、figure.autolayout を True に設定しておくことで、凡例が図の外にはみ出して切れてしまう問題も自動的に回避できます。
-
Matplotlibの折れ線グラフでY軸に複数のPandas列をプロットする方法
折れ線グラフのY軸に複数のPandas列をプロットしたい場合、set_index()メソッドを使ってインデックスを設定するのが簡単な方法です。この記事では、その具体的な手順とコード例を紹介します。実行手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。「Category 1」「Category 2」「Category 3」の3つの列を持つデータフレームを作成します。set_index()メソッドを使用して、既存の列からDataFrameのインデックスを設定します。図を表示するには、show()メソッドを呼び出します。コード例import pandas as pd
-
Matplotlibで図のマージン(余白)を設定する方法をわかりやすく解説
Matplotlibで作成するグラフの余白(マージン)を調整したい場合、margins()メソッドを使うことで簡単に設定できます。この記事では、実際のコード例とともに、マージン設定の基本的な手順を紹介します。margins()メソッドとはmargins()は、プロット領域の周囲にどれだけの余白を設けるかを指定するメソッドです。引数としてxやyに0〜1の範囲の値を渡すことで、軸方向ごとのマージン率を制御できます。例えばmargins(x=0, y=0)と指定すると、データ範囲ぴったりにプロットが表示され、余白がなくなります。実装手順figureサイズを設定し、サブプロット間および周囲のパディング