Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplot.pyplot和意外的绘图行为_Python_Matplotlib_Animation - Fatal编程技术网

Python matplot.pyplot和意外的绘图行为

Python matplot.pyplot和意外的绘图行为,python,matplotlib,animation,Python,Matplotlib,Animation,我是全新的堆栈溢出,所以请原谅任何格式问题。我会把照片贴在我的colab笔记本上。我希望很快能想出自己分享笔记本的办法 我正在尝试创建一个更新的matplotlib.pyplot图形,该图形在循环中更新。我发现了意想不到的行为。 我正试图制造出一帧一帧的小“细胞生物”: 在“框架”上绘制所有点 显示“框架” 清除“框架” 重复 我发现各种各样的帖子都有“plt.pause()”或“fig.canvas.draw()”等不同组合。不更新/设置动画是我问题的一部分,但绘图行为让我抓狂 因此,我注

我是全新的堆栈溢出,所以请原谅任何格式问题。我会把照片贴在我的colab笔记本上。我希望很快能想出自己分享笔记本的办法

我正在尝试创建一个更新的matplotlib.pyplot图形,该图形在循环中更新。我发现了意想不到的行为。

我正试图制造出一帧一帧的小“细胞生物”:

  • 在“框架”上绘制所有点
  • 显示“框架”
  • 清除“框架”
  • 重复
我发现各种各样的帖子都有“plt.pause()”或“fig.canvas.draw()”等不同组合。不更新/设置动画是我问题的一部分,但绘图行为让我抓狂

因此,我注意到,虽然“#ax.clear()”和“#plt.pause(.1)”都被注释掉,如下所示,但它在创建路径的旧“单元”上绘制了新的“单元”位置这符合我的期望

当我仅取消注释“#plt.pause(.1)”时,它不会显示逐帧暂停,并且还表现为清除旧的“单元格”位置。它只在末尾输出一个图像我不明白这一点。

#显示
图=plt.图(图尺寸=(4,4))
ax=图gca()
i=0
生命步数=20
而我的人生步骤是:
#安装框架
#ax.clear()
ax.grid(真)
ax.set_方面(“相等”)
轴(xmin=-20,xmax=20,ymin=-20,ymax=20)
#填充框架
对于单元中的单元:
cell.moveRand()
cell.liveOnce()
ax.scatter(cell.get_x(),cell.get_y(),s=cell.health,marker=cell.shape,color=cell.color)
#显示并删除
#plt.暂停(.1)
i+=1
有人有什么建议或解释可以

  • 使图形在循环时更新
  • 控制是否故意清除轴
  • 提前谢谢

       #Display
        fig = plt.figure(figsize=(4,4))
        ax = fig.gca()
    
    
        i= 0
        lifesteps = 20 
        while i < lifesteps:
            #Setup frame
            #ax.clear()
            ax.grid(True)
            ax.set_aspect('equal')
            ax.axis(xmin=-20, xmax = 20, ymin=-20,ymax=20)  
            #populate frame
            for cell in cells:
                cell.moveRand()
                cell.liveOnce()
                ax.scatter(cell.get_x() , cell.get_y(), s=cell.health, marker=cell.shape, color=cell.color)
        
            #Show and remove
            #plt.pause(.1)
            i+=1