使用用户定义函数的matplotlib绘制3d表面> 2个论点

时间:2014-11-06 06:43:55

标签: python plot 3d surface

我有一个带有6个参数的函数,比如说fn。我还有两个数组,一个'x'数组和一个'y'数组,填充了我想要评估fn的值(其他4个参数在整个时间内保持不变)。我想在x,y上得到一个fn迭代的3d图。反正有没有重新定义函数是2个参数的函数而其他4个保持不变?

我已经看过matplotlib的meshgrid,它似乎是一个方向,但是我不确定在meshgrid上调用我的函数是否会因为额外的四个(常量)参数而起作用。有任何想法吗?如果要求,将发布详细的代码。

1 个答案:

答案 0 :(得分:1)

您正在寻找一种叫做currying(http://en.wikipedia.org/wiki/Currying

的东西
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