logo

Matplotlib を使用した Python での箱ひげ図

箱ひげ図とは何ですか?

箱ひげ図は、箱といくつかの垂直線を使用してデータの分布を視覚化する方法です。これはウィスカー プロットとして知られています。データは、次の 5 つのキー範囲に分散できます。

    最小: Q1-1.5*IQR第 1 四分位(Q1): 25 パーセンタイル中央値:50パーセンタイル第3四半期(Q3):75 パーセンタイル最大: Q3+1.5*IQR

ここで IQR は 四分位範囲 これは、第 1 四分位 (Q1) から始まり、第 3 四分位 (Q3) で終わります。

箱ひげ図の視覚化

Matplotlib を使用した Python での箱ひげ図

箱ひげ図では、範囲外の点は外れ値と呼ばれます。データの箱ひげ図を作成して、次のことを判断できます。

  • データセット内の外れ値の数
  • データに偏りがあるかどうか
  • データの範囲

最小値から最大値までのデータの範囲は、ウィスカー制限と呼ばれます。 Python では、matplotlib モジュールの pyplot モジュールを使用します。このモジュールには、任意のデータ セットの箱ひげ図を作成できる boxplot() という名前の組み込み関数があります。

構文:

 matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none) 

boxplot() 関数には、データセットのより魅力的で素晴らしい箱ひげ図を作成するために使用できる属性が多数あります。

Linux コマンド
    データ: データは、プロットされる配列または配列のシーケンスである必要があります。ノッチ: このパラメータは、true または false のブール値のみを受け入れます。緑: この属性はブール値を受け入れます。 true に設定すると、グラフは垂直になります。それ以外の場合は水平になります。位置: ボックスの位置を定義する整数の配列を受け入れます。幅: ボックスの幅を定義する整数の配列を受け入れます。パッチアーティスト: このパラメータはブール値 (true または false) を受け入れます。これはオプションのパラメータです。ラベル: 各データポイントのラベルを定義する文字列を受け入れます。平均線: ブール値を受け入れますが、これはオプションです。注文: 箱ひげ図の順序を設定します。ブートストラップ: ノッチ付き箱ひげ図の範囲を指定する整数値を受け入れます。

例1:

numpy 配列のランダム データ セットを作成し、箱ひげ図を作成します。

 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

出力:

Matplotlib を使用した Python での箱ひげ図

説明:

SQLサーバーピボット

上記のコードでは、まずコード内に numpy ライブラリと matplotlib ライブラリをインポートしました。次に、ランダム データセットを作成し、boxplot() 関数を使用して箱ひげ図をプロットしました。

例2:

同じファイル内で複数の箱ひげ図を同時に作成できます。

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

出力:

Matplotlib を使用した Python での箱ひげ図

説明:

上記のコードでは、numpy のランダム メソッドを使用して 4 つのデータ セットがあります。次に、4 つのデータセットのリストを作成し、これを boxplot() 関数内で使用します。

例 3:

boxplot() 関数のいくつかの属性を使用して、プロットをカスタマイズできます。

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

出力:

Matplotlib を使用した Python での箱ひげ図

説明:

カイリー・ジェンナーは何歳ですか

上記のコードでは、ランダム関数を使用して 4 つのデータセットを作成し、リストに設定しています。これで、色のリストと関数 set_facecolor() を使用して、各箱ひげ図に異なる色を設定しました。

各箱ひげ図の線幅を設定し、各箱ひげ図のラベルも設定しました。属性 vert =0 を設定しました。これは、すべてのプロットが水平モードになることを意味します。