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

PythonのMatplotlibで累積分布関数(CDF)をプロットする方法

PythonのMatplotlibで累積分布関数(CDF)をプロットするには、以下の手順に従います。

手順の概要

  • 図のサイズを設定し、サブプロット間および周囲の余白を調整します。
  • サンプルデータの個数を表す変数 N を初期化します。
  • NumPyを使ってランダムデータを作成します。
  • databins=10 を指定して、データセットのヒストグラムを計算します。
  • 確率密度関数(PDF)を求めます。
  • 手順5で得た pdf を使って、cdf を計算します。
  • plot()メソッドを使用し、ラベル「CDF」を付けて cdf をプロットします。
  • 凡例を図上に配置します。
  • show()メソッドで図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt

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

N = 500
data = np.random.randn(N)
count, bins_count = np.histogram(data, bins=10)
pdf = count / sum(count)
cdf = np.cumsum(pdf)
plt.plot(bins_count[1:], cdf, label="CDF")
plt.legend()
plt.show()

実行結果

PythonのMatplotlibで累積分布関数(CDF)をプロットする方法

コードの解説

このコードでは、まず np.random.randn() によって標準正規分布に従う500個の乱数データを生成しています。次に np.histogram() を使い、データを10個のビン(階級)に分割して度数を求めます。各ビンの度数を総度数で割ることで確率密度関数(PDF)が得られ、さらに np.cumsum() による累積和を取ることで累積分布関数(CDF)を計算できます。

CDFは値が単調に増加し、最終的に1に収束する曲線として描画されます。これにより、データがある値以下になる確率を直感的に把握することが可能になります。なお、より簡単にCDFを描きたい場合は、plt.hist(data, bins=10, cumulative=True, density=True) のようにcumulativeオプションを使う方法もあります。

  1. Python Matplotlibで単一のポイント(点)をプロットする方法

    Matplotlibを使えば、たった1つのデータポイントでも簡単にグラフ上へプロットできます。ここでは、単一の点をプロットするための基本的な手順を解説します。 単一ポイントをプロットする手順 x と y のリストを、単一の値で初期化します。 plt.xlim() および plt.ylim() を使って、X軸・Y軸の表示範囲を0〜5に設定します。 plt.grid() を呼び出して、現在の線スタイルでグリッドを描画します。 plot() メソッドでxとyをプロットし、marker=o、markeredgecolor=red、markerfacecolor=green を指定してマーカーの見た目

  2. Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説

    MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元