Python 绘制f(x,y)=z=min(x,y)将创建二维三角形而不是三维曲面
我试图理解一个涉及笛卡尔平面的问题集,其中:Python 绘制f(x,y)=z=min(x,y)将创建二维三角形而不是三维曲面,python,matplotlib,Python,Matplotlib,我试图理解一个涉及笛卡尔平面的问题集,其中: f(x, y) = min(x, y) g(x, y) = max(x, y) h(x, y) = x + y 因此,我尝试使用python和matplotlib绘制给定函数,如下所示: data_x_axis = list(range(11)) data_y_axis = list(range(11)) data_z_axis = [] for x_value in data_x_axis: data_z_axis.append([mi
f(x, y) = min(x, y)
g(x, y) = max(x, y)
h(x, y) = x + y
因此,我尝试使用python和matplotlib绘制给定函数,如下所示:
data_x_axis = list(range(11))
data_y_axis = list(range(11))
data_z_axis = []
for x_value in data_x_axis:
data_z_axis.append([min(x_value, y_value) for y_value in data_y_axis])
print(data_z_axis)
%matplotlib notebook
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Grab some test data.
X = data_x_axis
Y = data_y_axis
Z = np.array(data_z_axis)
# Plot a basic wireframe.
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
plt.show()
本质上,这是以下代码示例:
x、 y值范围从0到10,z被计算为最小值(x,y)
然而,结果是:
我的数学已经不太可靠了,但我期望的是表面积,而不是二维三角形
我对基础数学的理解是否错误,或者我在matplotlib中计算值/绘制值时是否出错?它们应该是曲面。你的数学是对的 不幸的是,您正在绘制两个一维阵列,而不是二维阵列:
data_x_axis = list(range(11))
data_y_axis = list(range(11))
X = data_x_axis
Y = data_y_axis
ax.plot_wireframe(X, Y, ....
这只给了你11个点来绘制
试试这个:
X
和Y
值创建一个数组Z
Z
与一对关联:(X,Y)
(X,Y,Z)