在python的Jupyter Notebook中,使用matplotlib绘制动态图形时,可能出现只显示一张静态图像。
这是因为在notebook中使用plt绘图共有三种模式:
- %matplotlib inline:这是默认的模式,输出的图片是静态的
- %matplotlib auto:在这个模式下会弹出一个单独 的绘图窗口,和在pycharm中一样
- %matplotlib notebook:在这个模式下会在notebook中产生一个绘图窗口,能够对图片进行放大缩小等操作。
想要显示动态图像,只要把图片显示的窗口变成弹出式窗口即可。对应语句为%matplotlib auto。
鼠标事件需要关联matplotlib.backend_bases.FigureCanvasBase.mpl_connect方法。事件类型有:
- ‘button_press_event’
- ‘button_release_event’
- ‘draw_event’
- ‘key_press_event’
- ‘key_release_event’
- ‘motion_notify_event’
- ‘pick_event’
- ‘resize_event’
- ‘scroll_event’
- ‘figure_enter_event’,
- ‘figure_leave_event’,
- ‘axes_enter_event’,
- ‘axes_leave_event’
- ‘close_event’.
from matplotlib.backend_bases import MouseButton
import matplotlib.pyplot as plt
%matplotlib notebook
import numpy as np
x=np.arange(0