根据是否生成z,至少有两个不同的选项.
如果要生成z(例如,您知道z的公式),则非常简单(请参见下面的method_1()).
如果仅包含(x,y,z)元组的列表,则难度会更大(请参见下面的method_2(),也许还有method_3()).
常数
# min_? is minimum bound, max_? is maximum bound,
# dim_? is the granularity in that direction
min_x, max_x, dim_x = (-10, 10, 100)
min_y, max_y, dim_y = (-10, 10, 100)
方法1:生成z
# Method 1:
# This works if you are generating z, given (x,y)
def method_1():
x = np.linspace(min_x, max_x, dim_x)
y = np.linspace(min_y, max_y, dim_y)
X,Y = np.meshgrid(x,y)
def z_function(x,y):
return math.sqrt(x**2 + y**2)
z = np.array([z_function(x,y) for (x,y) in zip(np.ravel(X), np.ravel(Y))])
Z = z.reshape(X.shape)
plt.pcolormesh(X,Y,Z)
plt.show()
生成以下图形:
这相对容易,因