我想创建一个具有不同范围的输入变量的3D表面图



我已经收到了一个答案,但是这个问题由于不够详细而关闭了。我正在添加更多的信息,以防对某人有所帮助。

我发布了我正在研究的函数的简化版本。f(q, t) = k*q(1-t)其中k是某个预定义的常数。我想为所有q和t创建一个f(q, t)的三维曲面图,当q和t位于不同的间隔。

q在单位区间上,t可以是0到某个正值z(不包括1)之间的任意值。

我发现了类似的问题和答案,但它们处理的变量在相同的区间上。有些步骤甚至在看了指南后也不清楚。具体来说,我不知道如何组合q的间隔,因为我是新手,不知道还可以搜索什么。

我之前只使用excel数据做过基本的2D绘图,所以我不知道从哪里开始,而不是定义函数。希望这对将来遇到类似问题的人来说足够详细。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def f(x, y):
return 2 * x * (1 - y)
x = np.linspace(0, 1, 50)
y = np.union1d(np.linspace(0, 0.99, 50), np.linspace(1.01, 2, 50)) 

X, Y = np.meshgrid(x, y)
Z = f(X, Y)
fig = plt.figure(figsize=(12,8))
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 100, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z');
基本上,你只需要调整这里给出的例子:https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-dimensional-plotting.html。这个脚本是非常不言自明的。

最新更新