使用 subplot2grid 对每个子图进行不同的回调

Different Callback for each subplot using subplot2grid

亲爱的 Python 社区开发者,您好, 我想知道是否有办法为每个 subplot2grid (matplotlib)设置不同的回调, 例如:对于第一个subplot2grid,我想执行一个函数,它不同于生成的第二个subplot2grid执行另一个函数。

我指定我在 matplotlib 中使用 subplot2grid 而不是 subplot。 谢谢,

如果您的目标是为每个子图使用 widget.Button,那么情况就很简单了。要创建一个按钮,您需要向它传递一个 Axes 实例,该按钮将占用 space。因此,您需要创建与子图一样多的新轴,并适当地指定它们的坐标。然后创建你的按钮,它可以有不同的回调函数。

例如:

from matplotlib.widgets import Button

def callback1(event):
    print "you've clicked button 1"

def callback2(event):
    print "you've clicked button 2"

fig = plt.figure()
ax1 = plt.subplot2grid((2,2),(0, 0))
ax2 = plt.subplot2grid((2,2),(1,1))

# create axes to receive the buttons
# adjust the coordinates to suit your needs
# coordinates are [left, bottom, width, height]
b1ax = plt.axes([0.5, 0.8, 0.2, 0.1])
b1 = Button(b1ax, 'Button 1')
b1.on_clicked(callback1)
b2ax = plt.axes([0.7, 0.5, 0.2, 0.1])
b2 = Button(b2ax, 'Button 2')
b2.on_clicked(callback2)
plt.show()

widget.Button 的文档:http://matplotlib.org/api/widgets_api.html#matplotlib.widgets.Button

实现示例:http://matplotlib.org/examples/widgets/buttons.html