見出し画像

【Python】 3次元のグラフ #2

前回に引き続き、3次元のグラフの表示をしました。
前回までは、Jupyter Notebookでプログラミングしましたが、今回はVisual Studio Code (以下、VSCode)で実行しました(補完やコード整形があって便利)。

2変数関数①

初めに作成した関数

画像3

以下、プログラム

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import math


def f3(x0, x1):
   ans = (2 * x0 ** 2 + x1 ** 2) * np.exp(-(2 * x0 ** 2 + x1 ** 2))
   return ans
   

xn = 50
ran = 2
x0 = np.linspace(-ran, ran, xn)
x1 = np.linspace(-ran, ran, xn)
y = np.zeros((len(x0), len(x1)))
for i0 in range(xn):
   for i1 in range(xn):
       y[i1, i0] = f3(x0[i0], x1[i1])

xx0, xx1 = np.meshgrid(x0, x1)

plt.figure(figsize=(5, 3.5))
ax = plt.subplot(1, 1, 1, projection='3d')
ax.plot_surface(xx0, xx1, y, rstride=1, cstride=1,
               alpha=0.3, color='blue', edgecolor='black')
#ax.set_zticks((0, 0.2))
ax.view_init(75, -95)
plt.show()

このプログラムを実行した様子↓

2変数関数②

次に新たに作成した関数

画像2

以下、プログラム

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import math


def f3(x0, x1):
   ans = math.sin(x0 ** 2 + x1 ** 2)
   return ans
   

xn = 50
ran = 2
x0 = np.linspace(-ran, ran, xn)
x1 = np.linspace(-ran, ran, xn)
y = np.zeros((len(x0), len(x1)))
for i0 in range(xn):
   for i1 in range(xn):
       y[i1, i0] = f3(x0[i0], x1[i1])

xx0, xx1 = np.meshgrid(x0, x1)

plt.figure(figsize=(5, 3.5))
ax = plt.subplot(1, 1, 1, projection='3d')
ax.plot_surface(xx0, xx1, y, rstride=1, cstride=1,
               alpha=0.3, color='blue', edgecolor='black')
#ax.set_zticks((0, 0.2))
ax.view_init(75, -95)
plt.show()

このプログラムを実行した様子↓


この記事が気に入ったらサポートをしてみませんか?