散布図のプロット

平均 100, 標準偏差 50 の正規分布に従う乱数を10000個生成(x要素のデータとする)。
平均 -200, 標準偏差 100 の正規分布に従う乱数を10000個生成(y要素のデータとする)。
各xy要素を散布図としてプロットする。


#!/usr/bin/env python


import random
import matplotlib.pyplot as plt


def plot():
    xmu = 100
    xsigma = 50
    XMIN = -100
    XMAX =  300

    ymu = -200
    ysigma = 100
    YMIN = -400
    YMAX =  0
    
    N = 10000

    x = [random.normalvariate(xmu,xsigma) for i in range(N)]
    y = [random.normalvariate(ymu,ysigma) for i in range(N)]
    
    fig = plt.figure()

    ax = fig.add_subplot(1,1,1)
    ax.plot(x,y,marker='+',linestyle="None")
    ax.set_xlim(XMIN,XMAX)
    ax.set_ylim(YMIN,YMAX)
    ax.set_xlabel("X data")
    ax.set_ylabel("Y data")
    ax.grid()
    
    plt.savefig("test.png")

    plt.close()


if __name__=="__main__":
    plot()


plot()の仕様(一部):
plot(x, y, color='green', linestyle='None', marker='+', markersize=12)

  • x: x要素のデータ
  • y: y要素のデータ
  • color: どの色で点をプロットするか
  • linestyle: 点同士をどのような線で結ぶか(散布図をプロットする場は'None'とする)
  • marker: どの節点でプロットするか
  • markersize: 節点の大きさ


※より詳しくは、http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.plot を参照