Spyder中绘制动态图的显示问题

您所在的位置:网站首页 spyder图片显示控制台 Spyder中绘制动态图的显示问题

Spyder中绘制动态图的显示问题

2023-11-03 16:37| 来源: 网络整理| 查看: 265

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

显示的图形如下,未有报错: 在这里插入图片描述 但是在python自带的idle下运行,却生成了动态图: 在这里插入图片描述 查找了网上类似的问题,大部分的解决方案是将Spyder中Ipython控制台的绘图一栏中BackEnd设置成自动或是qt5,但是我按此进行操作后,仍然不能显示动图。

但是奇怪的是,在一顿瞎操作后(我将封装的显示动画的代码段去除封装),这时候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