Pythonのグラフ描画用のライブラリであるmatplotlibを使って、3次元データのプロットを行ったときのメモ。
matplotlibで2次元のデータ( y = f(x) のようなもの )の散布図を描画するのは簡単で、matplotlibの中のpyplotを使って
import numpy import matplotlib.pyplot as plt xs=numpy.random.rand(1,100) ys=numpy.random.rand(1,100) plt.scatter(xs, ys) plt.show()
でできる。結果はこのような感じ。
(もちろん先に関数fを定義しておく必要はある。上の例ではランダムな値を入れている)
要は、同じ数のデータ系列が2つあれば、それをx,y軸の値に取るような散布図を描画できる。
これを3次元でやりたい。要はx, y, zの3つの同じ数のデータが合った時の散布図を作りたい。
これはちょっと面倒で、mpl_toolkits.mplot3dというのを使う。
import numpy import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D xs=numpy.random.rand(1,100) ys=numpy.random.rand(1,100) zs=numpy.random.rand(1,100) fig=plt.figure() ax=Axes3D(fig) ax.scatter3D(xs, ys, zs) plt.show()