Pyplot:刷新imshow()窗口

时间:2016-02-16 10:31:31

标签: python numpy matplotlib imshow

我有两种方法:generate_window()显示图像,on_click()响应显示图像的窗口上的点击。它们看起来像这样:

def generate_panel(img):
  plt.figure()
  ax = plt.gca()
  fig = plt.gcf()
  implot = ax.imshow(img)
  # When a colour is clicked on the image an event occurs
  cid = fig.canvas.mpl_connect('button_press_event', onclick)
  plt.show()

def onclick(event):
  if event.xdata != None and event.ydata != None:
    # Change the contents of the plt window here

在代码的最后一行,我希望能够更改plt窗口中显示的图像,但我似乎无法使其工作。我已经在不同的地方尝试了set_data()和draw(),但这并没有奏效。有什么建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您还必须使用.panel { height: 300px; } #collapseOne, #collapseTwo { height:90%; max-height:90%; overflow-y:auto; } 启用交互模式 然后只需在修改后调用plt.ion()即可。

注意:使用交互模式时,您必须在plt.draw()上指定参数block=True,以防止它立即关闭窗口。

您的示例的此修改版本应在每次鼠标点击时绘制一个圆圈:

plt.show()