Python 使用带有>;的用户定义函数的matplotlib绘制三维曲面;2个论点

Python 使用带有>;的用户定义函数的matplotlib绘制三维曲面;2个论点,python,plot,3d,surface,Python,Plot,3d,Surface,我有一个有6个参数的函数,比如fn。我还有两个数组,一个是“x”数组,一个是“y”数组,其中填充了我想计算fn的值(其他4个参数在整个过程中保持不变)。我想得到fn在x,y上迭代的3d图。在不将函数重新定义为一个包含2个参数的函数,而其他4个参数保持不变的情况下,是否仍然可以这样做 我看过matplotlib的meshgrid,这似乎是一个方向,但我不确定在meshgrid上调用我的函数是否有效,因为还有四个(常量)参数。有什么想法吗?如果需要,将发布详细代码。您正在寻找一种叫做currying

我有一个有6个参数的函数,比如fn。我还有两个数组,一个是“x”数组,一个是“y”数组,其中填充了我想计算fn的值(其他4个参数在整个过程中保持不变)。我想得到fn在x,y上迭代的3d图。在不将函数重新定义为一个包含2个参数的函数,而其他4个参数保持不变的情况下,是否仍然可以这样做


我看过matplotlib的meshgrid,这似乎是一个方向,但我不确定在meshgrid上调用我的函数是否有效,因为还有四个(常量)参数。有什么想法吗?如果需要,将发布详细代码。

您正在寻找一种叫做currying()


最简单的解决方案是创建另一个只接受两个参数的函数,并使用其他参数的适当固定值调用函数。始终可以使用带有
x,y
输入和其他四个固定值的
lamda
函数。
def wrapper_function_factory(fun, c, d, e f):
    return lambda a, b: fun(a, b, c, d, e, f)

fixed_fun = wrapper_function_factor(fun, C, D, E, F)

Z = fixed_fun(x, y)  # assuming your function can do broadcasting