matplotlib mplot3dで3次元グラフ作成

matplotlibでmplot3dというツールキットを用いることで、このような3次元グラフが描くことができます。

----------
from mpl_toolkits.mplot3d import axes3d
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')       

x = np.arange(-10, 10, 0.25)
y = np.arange(-5, 5, 1.00)
X, Y = np.meshgrid(x, y)
Z = np.sin(X)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm)

plt.show()
----------

まず
  from mpl_toolkits.mplot3d import axes3d
で、mplot3dを呼び出します。

で、
  fig = plt.figure()
  ax = fig.gca(projection='3d')       
は、3次元グラフを作成するときのおまじない?みたいなものです。

3次元グラフを作成するのには、2次元グリッドデータが必要となるので、以下のようにします。
  x = np.arange(-10, 10, 0.25)
  y = np.arange(-5, 5, 1.00)
  X, Y = np.meshgrid(x, y)
このmeshgridでx, yを元にグリッドデータを作成しています。

以下のコマンドでプロットします
  ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm)
rstrideとcstrideは、何ステップ毎にプロットするかを指定します。
cmapはカラーマップの指定ですね。ここでは単にグラフを見やすくするために指定しています。



----------
Zを
  Z = np.sin(X) + np.cos(Y)
として、x, yを調整すれば以下のようなグラフも出来ます。

もちろんこのようにマウスのドラッグ操作で回転させることも出来ます。

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

gnuplot : グラフにグリッド線を描く方法(set grid)