我正在尝试在函数内部实现十六进制图,并且有一个相当复杂的reduce_C_function,将需要接收参数a。一个(虽然很简单)的例子:

    def sum_i(z,a):
        return a*np.sum(z)
    def some_function(X,Y,Z,a):
        hexb = plt.hexbin(X,Y,C=Z,reduce_C_function=sum_i)


现在,matplotlib文档(https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.hexbin.html)对于reduce_C_function的使用并不十分有用,那么我如何设法通过a

最佳答案

您可以从partial中创建一个sum_i函数,并将其作为单个参数的函数传递给plt.hexbin

from functools import partial

def sum_i(z,a):
    return a*np.sum(z)
def some_function(X,Y,Z,a):
    reduce_function = partial(sum_i, a=a)
    hexb = plt.hexbin(X,Y,C=Z,reduce_C_function=reduce_function)


source code的外观来看,没有其他方法可以为reduce_C_function传递附加参数。

关于python - 将参数传递给matplotlib hexbin图中的reduce_C_function,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51300736/

10-11 03:36