matplotlibで2次元プロットを作成する。
gnuplotで表示が遅くなる場合(1000x1000)くらいでも余裕で動く。
ここで2次元プロットと言っているのは、
座標(x,y)におけるスカラ量f(x,y)を表示する図の事である。
基本編
import numpy
from matplotlib import pyplot
data = numpy.random.rand(128,128) # 128x128の2次元numpy.arrayに乱数を入れて生成
pyplot.imshow(data)
とりあえず2次元のnumpy.arrayをもってればこれでOK.
ただしx/y軸はindexを使用する。
grid
gridを出すにはmeshgrid
, pcolor
を使用する。
from numpy import arange, meshgrid
from math import pi
from matplotlib import pyplot
x = arange(0,2*pi,2*pi/128)
y = arange(0,2*pi,2*pi/128)
X, Y = meshgrid(x,y)
data = numpy.random.rand(128,128)
pyplot.pcolor(X, Y, data)
この場合x/yをlogにできる
pyplot.xscale("log")
norm
色を対数にするにはnorm引数を使用する
from matplotlib.colors import LogNorm
...
pyplot.imshow(data, norm=LogNorm(vmin, vmax))
pyplot.pcolor(X, Y, data, norm=LogNorm(vmin, vmax))
vmin,vmaxはそれぞれ下限,上限値
省略するかNoneの場合は自動判定