我正在尝试在函数内部实现十六进制图,并且有一个相当复杂的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
传递给我们?
答案 0 :(得分:1)
您可以从sum_i
中创建一个partial
函数,并将其作为单个参数的函数传递给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
传递附加参数。