使用subplot2grid

时间:2016-12-22 10:40:17

标签: python matplotlib callback subplot

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

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

1 个答案:

答案 0 :(得分:1)

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

例如:

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

enter image description here

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

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