Spyder中绘制动态图的显示问题 |
您所在的位置:网站首页 › spyder图片显示控制台 › Spyder中绘制动态图的显示问题 |
Spyder 中动态图显示问题
在学习matplotlib.animation模块时,使用Spyder编辑以下代码,运行后发现创建的动画只能静态显示 # 创建动画图形 import matplotlib.pyplot as plt from matplotlib import animation def create_circle(): circle = plt.Circle((0,0),radius = 0.5) return circle def update_radius(i, circle): circle.radius = i * 0.5 return circle def create_animation(): fig = plt.gcf() ax = plt.axes(xlim = (-10, 10), ylim = (-10, 10)) ax.set_aspect('equal') circle = create_circle() ax.add_patch(circle) anim = animation.FuncAnimation(fig, update_radius,fargs = (circle,),frames = 30, interval = 50) plt.title('Simple Circle Animation') plt.show() if __name__ == '__main__': create_animation()显示的图形如下,未有报错: 但是奇怪的是,在一顿瞎操作后(我将封装的显示动画的代码段去除封装),这时候Spyder也能显示动图了 # 创建动画图形 import matplotlib.pyplot as plt from matplotlib import animation def create_circle(): circle = plt.Circle((0,0),radius = 0.5) return circle def update_radius(i, circle): circle.radius = i * 0.5 return circle # 貌似底下这段代码封装在函数里,Spyder无法动态显示(python自带的idle可以),不封装则可以动态显示 fig = plt.gcf() ax = plt.axes(xlim = (-10, 10), ylim = (-10, 10)) ax.set_aspect('equal') circle = create_circle() ax.add_patch(circle) anim = animation.FuncAnimation(fig, update_radius,fargs = (circle,),frames = 30, interval = 50) plt.title('Simple Circle Animation') plt.show()虽然误打误撞,但还是没明白为什么上述那段代码段的封装会影响Spyder的动图显示,明明在python自带的idle中运行不受影响,而在Spyder中运行却有问题 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |