【Python】 3次元のグラフ #2
前回に引き続き、3次元のグラフの表示をしました。
前回までは、Jupyter Notebookでプログラミングしましたが、今回はVisual Studio Code (以下、VSCode)で実行しました(補完やコード整形があって便利)。
2変数関数①
初めに作成した関数
以下、プログラム
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変数関数②
次に新たに作成した関数
以下、プログラム
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()
このプログラムを実行した様子↓
この記事が気に入ったらサポートをしてみませんか?