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

Seabornで2つのグラフを横に並べてプロットする方法(Matplotlib)

データ分析では、複数のグラフを1つの図の中に並べて比較できると非常に便利です。この記事では、SeabornMatplotlibを組み合わせて、2つのグラフを横並び(1行2列)で表示する方法を解説します。

実装の流れ

2つのグラフを並べて描画するには、以下の手順を実行します。

  • plt.subplots(1, 2) を使い、figureサイズ(7, 7)で1行2列のサブプロットを作成します。
  • Pandasを使って、col1col2 のキーを持つデータフレームを作成します。
  • countplot() メソッドを使用し、カテゴリごとの観測値の件数を棒グラフで可視化します。
  • subplots_adjust() などでサブプロット間の余白(パディング)を調整します。
  • show() メソッドを呼び出して、図を画面に表示します。

コード例

import pandas as pd
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt

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

# 1行2列のサブプロットを作成
f, axes = plt.subplots(1, 2)

# データフレームを作成
df = pd.DataFrame(dict(col1=np.linspace(1, 10, 5), col2=np.linspace(1, 10, 5)))

# 左側にcol1のカウントプロット(赤)、右側にcol2のカウントプロット(緑)を描画
sns.countplot(df.col1, x='col1', color="red", ax=axes[0])
sns.countplot(df.col2, x="col2", color="green", ax=axes[1])

plt.show()

実行結果

上記のコードを実行すると、赤色のグラフ(col1)と緑色のグラフ(col2)が1つのウィンドウ内に左右に並んで表示されます。ax 引数にそれぞれのAxesオブジェクトを渡すことで、どの位置にグラフを描画するかを指定できるのがポイントです。

補足:レイアウト調整のコツ

グラフ同士が重なって見づらい場合は、plt.tight_layout() を呼び出すか、冒頭の plt.rcParams["figure.autolayout"] = True の設定により、タイトルや軸ラベルが自動的に収まるよう調整されます。また、plt.subplots(2, 1) とすれば、縦方向に2つのグラフを積み重ねることも可能です。

  1. Matplotlibで棒グラフのラベルに絵文字を表示する方法

    Matplotlibでは、annotate()メソッドを使うことで、棒グラフの各バーの上部に絵文字をラベルとして簡単に配置できます。データの視覚化にアクセントを加えたい場合に便利なテクニックです。実装手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。頻度を表すリストfreqsと、絵文字を含むラベルのリストlabelsを作成します。figure()メソッドを使用して、新しい図を作成します。bar()メソッドで棒グラフを描画します。annotate()メソッドを使って、各バーの上に絵文字をラベルとして配置します。show()メソッドで図を表示します。コード例impo

  2. Matplotlibで円の中に長方形をプロットする方法

    Matplotlibを使って円の中に長方形を描画したい場合、patchesモジュールが提供するRectangle()クラスとCircle()クラスを組み合わせることで簡単に実現できます。以下の手順に従ってください。手順figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドで現在の図にサブプロット(軸)を追加します。Rectangle()クラスとCircle()クラスを使って、長方形と円のインスタンスを作成します。add_patch()メソッドで作成したパッチを軸に追加します。xlim()およびylim()メソッドを使用して、x