MatplotlibでSeabornジョイントプロットの軸ラベルをカスタマイズする方法
Seabornのjointplot()で作成したグラフの軸ラベルをカスタマイズしたい場合、Matplotlibの機能を組み合わせることで簡単に実現できます。ここでは、具体的な手順とサンプルコードを紹介します。
カスタマイズの手順
- 図(figure)のサイズを設定し、
figure.autolayoutを使ってサブプロット間や余白を自動調整します。 - NumPyを使ってx・yのデータポイントを作成します。
- jointplot()メソッドを使って、Seabornでジョイントプロット(散布図+ヒストグラム)を描画します。
- 戻り値として得られるオブジェクトのax_jointに対してset_xlabel()メソッドを呼び出し、軸ラベルを設定します。ラベルにはLaTeX形式の数式表記も使用可能です。
- 最後にshow()メソッドで図を表示します。
サンプルコード
import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.random.randn(1000,)
y = 0.2 * np.random.randn(1000) + 0.5
h = sns.jointplot(x, y, height=3.50)
h.ax_joint.set_xlabel('$\\bf{X-Axis\ Label}$')
plt.show()実行結果
上記のコードを実行すると、x軸に太字の「X-Axis Label」というカスタムラベルが表示されたジョイントプロットが出力されます。
ポイント解説
sns.jointplot()は単独のAxesではなくJointGridオブジェクトを返すため、通常のplt.xlabel()ではうまく動作しないことがあります。そのため、h.ax_joint.set_xlabel()のように、結合プロット本体のAxesに直接アクセスしてラベルを設定するのが確実な方法です。また、$\\bf{...}$のようなLaTeX記法を使えば、太字や数式を含む装飾的なラベルも自由に表現できます。
-
MatplotlibとSeabornのカウントプロットで表示するグループ数を制限する方法
Seabornのカウントプロット(countplot)で表示されるグループの数を制限したい場合、countplot()メソッドの引数で使用できる変数group_countを活用すると簡単に実現できます。手順図(figure)と2つのサブプロットを作成します。Pandasを使って、複数のキー(列)を持つデータフレームを作成します。グループ数を制限するための変数group_countを初期化します。countplot()メソッドを使用して、各カテゴリビンごとの観測値の数を棒グラフとして表示します。このとき、order引数にgroup_countを適用することで、表示するグループ数を制御します。サブ
-
MatplotlibでSeabornプロットの凡例(レジェンド)のフォントサイズを大きくする方法
Seabornプロットの凡例(レジェンド)のフォントサイズを大きくしたい場合は、fontsize変数を定義し、それをlegend()メソッドの引数として渡すことで実現できます。手順Pandasを使ってデータフレームを作成します。キーは「number」「count」「select」とします。Seabornのbarplot()メソッドを使って棒グラフを描画します。凡例のフォントサイズを大きくするための変数fontsizeを初期化します。legend()メソッドを使い、fontsizeを引数に指定して図上に凡例を配置します。図を表示するには、show()メソッドを使用します。サンプルコードimpor