向矩形选择器方法传递附加参数

2024-05-19 15:53:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在matplotlib中使用矩形选择器,并试图传递其他参数。下面是我尝试的一个基本代码示例:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import RectangleSelector

word = "watermelon"

x = np.arange(0,100,1)
y = x**3

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y,'r--')

def line_select_callback(eclick, erelease, additional_argument):
    x1, y1 = eclick.xdata, eclick.ydata
    x2, y2 = erelease.xdata, erelease.ydata
    print(x1, y1)
    print(additional_argument)

rs = RectangleSelector(ax, lambda event, word: line_select_callback,
                    drawtype='box', useblit=False, button=[1],
                    minspanx=5, minspany=5, spancoords='pixels',
                    interactive=True)

plt.show()

如果从方法中删除附加的参数并将lambda event, word: line_select_callback改为line_selec_callback,那么代码运行得非常好。但是对于一个更大的项目的需求,传递额外参数的能力是必需的。在

我尝试过使用lambda函数和functools.partial但在这种情况下,我两个都没法工作。我还在学习python,如果这个问题是一个基本问题,我很抱歉。谢谢你的帮助。在


Tags: lambdaimport参数matplotlibasnplinecallback