【发布时间】:2017-08-18 12:41:49
【问题描述】:
我有三个白色按钮 [A,B,C]。单击其中任何一个按钮时,它们应立即变为绿色。依次单击多个按钮时,只有最近单击的按钮会变为绿色,其他按钮应返回到原来的白色状态。
我已阅读此页面Change matplotlib Button color when pressed,但没有帮助。这是我编写的代码。目前按钮甚至没有变成绿色。我正在使用 Matplotlib 2.0。
from matplotlib.widgets import Button
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
button_axcut={}
button={}
button_axcut['A'] = plt.axes([0.25,0.5, 0.1, 0.1])
button['A'] = Button(button_axcut['A'] ,'A', color='white')
button_axcut['B'] = plt.axes([0.45,0.5, 0.1, 0.1])
button['B'] = Button(button_axcut['B'] ,'B', color='white')
button_axcut['C'] = plt.axes([0.65,0.5, 0.1, 0.1])
button['C'] = Button(button_axcut['C'],'C', color='white')
def A_clicked(event):
print('A')
button['A'].ax.set_facecolor('green')
button['B'].ax.set_facecolor('white')
button['C'].ax.set_facecolor('white')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
def B_clicked(event):
print('B')
button['A'].ax.set_facecolor('white')
button['B'].ax.set_facecolor('green')
button['C'].ax.set_facecolor('white')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
def C_clicked(event):
print('C')
button['A'].ax.set_facecolor('white')
button['B'].ax.set_facecolor('white')
button['C'].ax.set_facecolor('green')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
button['A'].on_clicked(A_clicked)
button['B'].on_clicked(B_clicked)
button['C'].on_clicked(C_clicked)
【问题讨论】:
标签: python matplotlib interactive