2次元正規密度関数のヒートマップ

Simon J.D. Prince, Computer vision: models, learning and inference (2012) に頻繁に出てくるヒートマップに刺激されて真似てみた。

#coding: utf-8

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

def main():
    x = np.linspace(-4.0, 4.0, 200)
    y = np.linspace(-4.0, 4.0, 200)
    X, Y = np.meshgrid(x, y)

    # 2次元正規分布
    # matplotlib.mlab : MATLAB compatible command
    # matplotlib.mlab.bivariate_normal(X, Y, sigmax=1.0, sigmay=1.0, mux=0.0, muy=0.0, sigmaxy=0.0)

    # spherical covariance
    # Z = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0, 0.0)

    # diagonal covariance
    Z = mlab.bivariate_normal(X, Y, 2.0, 1.0, 0.0, 0.0, 0.0)

    # ヒートマップ
    plt.pcolor(X, Y, Z, cmap=plt.cm.hot)

    plt.colorbar()

    # タイトル
    plt.title('bivariate normal density')

    # ラベル
    plt.xlabel('$x$', size=12)
    plt.ylabel('$y$', size=12)

    plt.show()

if __name__ == '__main__':
    main()

描画されたヒートマップを以下に示す。
f:id:ymuto109:20150410105310p:plain