我试图绘制一个2变量函数,其中包含可以更改的附加参数。以下是功能-
f(x,y) = (x - a*y)/(b+y)
我想在3d中绘制它,并希望通过改变a和b的值,即当a=1和b=0时,看到绘图中的变化
我可以为特定的a和b情况绘制它,下面是适用于a=1和b=0的代码。对于a和b的不同情况,是否有任何方法不需要单独映射
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import numpy as np
x = np.linspace(30,7000,10000)
y = np.linspace(1,11000, 10000)
def delCAD(x,y):
return (x-y)/(y) # the function when a=1 and b=0
fig = plt.figure(figsize=(12,8))
ax = Axes3D(fig)
ax = fig.gca(projection = "3d")
surf = ax.plot_trisurf(x, y, delCAD(x,y), cmap = cm.coolwarm)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
我通常用IPython或Jupyter来做这类事情——也许这是你的选择?例如,使用
ipywidgets.interact()
:产生以下结果:
除了
interact
包装器之外,我还引入了meshgrid
行来计算网格中的所有位置,并且我稍微更改了一些参数,以便您可以看到函数中的更多内容。我希望你能根据自己的需要拆开不同的部件相关问题 更多 >
编程相关推荐