Matplotlibのfactorplotで線幅とマーカーサイズを別々に変更する方法
Seabornのfactorplot()を使うと、カテゴリごとの平均値を折れ線グラフとして簡単に可視化できます。ここでは、マーカーのサイズをscale引数で調整する方法を紹介します。
手順
- 図のサイズを設定し、サブプロット間の余白(パディング)を自動調整します。
- オンラインリポジトリからサンプルデータセットを読み込みます。
factorplot()メソッドでscale引数を使い、マーカーのサイズを変更します。show()メソッドで図を表示します。
コード例
import seaborn as sns
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# サンプルデータセット「exercise」を読み込む
exercise = sns.load_dataset("exercise")
# factorplotでポイントプロットを作成(scaleでマーカーサイズを指定)
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise, ci=95,
markers=['o', '*', 'd'],
scale=1, height=7.0)
plt.show()出力結果
上記のコードを実行すると、時間(time)ごとの脈拍(pulse)が種類(kind)別に色分けされた折れ線グラフが表示され、各点に円・星形・ひし形のマーカーが描画されます。マーカーのサイズはscaleの値を大きくすることで拡大できます。
補足:新しいバージョンでの注意点
factorplot()はSeaborn 0.9以降で非推奨となり、後継のcatplot()の使用が推奨されています。catplot()ではkind="point"を指定すると同じポイントプロットが描けます。また、線幅を個別に制御したい場合は、plot_kws={"linewidth": 2}のようにキーワード引数を渡すことで実現できます。
g = sns.catplot(x="time", y="pulse", hue="kind", data=exercise,
kind="point", ci=95,
markers=['o', '*', 'd'],
scale=1, height=7.0,
plot_kws={"linewidth": 2})このようにscaleでマーカーサイズを、plot_kwsのlinewidthで線幅をそれぞれ独立して調整できます。
-
MatplotlibでJupyterノートブックのmatshow()のfigsize(図のサイズ)を変更する方法
Matplotlibのmatshow()メソッドで表示される図のサイズ(figsize)を変更したい場合、figure()メソッドの引数にfigsizeを指定し、matshow()メソッドにはfignumを指定することで実現できます。手順figure()メソッドを使って、新しい図を作成するか、既存の図をアクティブにします。このとき、figsize引数で図のサイズを指定できます。Pandasを使ってデータフレームを作成します。matshow()メソッドを使って、配列を行列として新しい図ウィンドウに表示します。引数fignumには、None、整数、または0を指定できます。Noneの場合:自動的に番
-
Matplotlibの図に凡例を配置・整列させる方法
Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl