5
5

More than 5 years have passed since last update.

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の場合は自動判定

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5