我在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。感谢您提供任何帮助。