我试图理解一个涉及笛卡尔平面的问题集,其中:
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()
本质上,这是以下代码示例: https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#wireframe-plots
x,y值范围为0到10,z被计算为最小值(x,y)
然而,结果是:
我的数学已经不太可靠了,但我期望的是表面积,而不是二维三角形
我对基础数学的理解是错误的还是在matplotlib中计算值/绘制值时出错
它们应该是曲面。你的数学是对的
不幸的是,您正在绘制两个一维阵列,而不是二维阵列:
这只给了你11个点来绘制
试试这个:
X
和Y
值创建一个数组Z
Z
与一对关联:(X, Y)
(X, Y, Z)
相关问题 更多 >
编程相关推荐