我想在回圈中創建圖形回呼,為每個圖形的回呼提供不同的附加輸入引數。在下面的代碼片段中,無論我單擊哪個圖形,該函式都會列印“B”。
import matplotlib.pyplot as plt
import numpy as np
def onclick(event, key):
print(key)
for k in ["A", "B"]:
x = np.arange(1,10)
y = x**2
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title(k)
ax.plot(x,y)
cid = fig.canvas.mpl_connect('button_press_event', lambda tmp: onclick(tmp, k))
uj5u.com熱心網友回復:
代替
lambda tmp: onclick(tmp, k)
和
functools.partial(onclick, key=k)
完整示例:
from functools import partial
import numpy as np
import matplotlib.pyplot as plt
def onclick(event, key):
print(key)
for k in ["A", "B"]:
x = np.arange(1,10)
y = x**2
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title(k)
ax.plot(x,y)
cid = fig.canvas.mpl_connect('button_press_event', partial(onclick, key=k))
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/350077.html
上一篇:洗掉回圈中直方圖的水平線
