将其他参数传递给rectangleselector方法

时间:2017-06-08 06:48:22

标签: python matplotlib lambda functools

我在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()

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

我尝试过使用lambda函数和functools.partial,但我似乎无法在这种情况下工作。如果这个问题是基本问题,我仍然在学习python。感谢您提供任何帮助。

0 个答案:

没有答案