Python和科学计算认证群组  - 讨论区

标题:还是关于绘图速度的问题,请大家帮忙看看

2012年05月20日 星期日 18:32

假设在矩形坐标系下画图,但图形不是一次全部画满整个区域(如下图),

 

而是:

1.从左至右按时间顺序依次添加的,类似于队接收数据进行实时显示。

2.当整个区域画满后,从最左边开始重复1

3.每次添加一个很小的矩形,肉眼看上去就像一条线从左扫到右边,图像就更新完一个周期。

目前我使用下面的方式(只是伪码,如果决定不够清楚可直接提出来):

for change Z:

     plt.contourf(X,Y,Z,levels=levels)

     plt.pause(0.01)

来体现这种效果,但是我发现虽然我设置了暂停时间间隔,但是随着时间的增长,绘图速度变得越来越慢。

请问有什么好的方式实现我想到的效果?

2012年05月20日 星期日 18:37

我分析是由于每次都只添加一个小的矩形,使得图像里的对象越来越多。

可能每次绘图都删除原来存在的对象,重新画一个整幅的图像,这样可能速度会由所提高。

待会试试。

不知道有没有更好的方式?

2012年05月20日 星期日 19:52

为什么不用imshow绘图呢?

2012年05月20日 星期日 20:04

imshow是不是只能绘直角坐标系的,

换成极坐标好像就不行了,

虽然可以在矩形区域中用imshow显示圆形区域(制造使用极坐标的假象);

但是有时候我有的数据就是极坐标的,如果还要用imshow,恐怕必须附加一些额外的处理(例如坐标变换)....

 

不过也是个方案,我有空试试。多谢楼上!

2012年05月20日 星期日 20:22

极坐标的话用pcolormesh

2012年05月20日 星期日 23:38

关键不在于用哪个函数,

而是我这样的实时绘图策略好像不好。每次添加绘制的内容是一样大的,但为什么绘图的时间会越来越慢???

2012年05月20日 星期日 23:44

看了你的“实时更新数据”的例子,感觉挺好!

http://hyry.dip.jp/tech/forum/thread.html/154

请教一下:有没有简单的方式把动态的绘图保存下来,保存为gif或者视频文件之类的?

2012年05月21日 星期一 10:34

关于制作动画在书的第13章有介绍,不过书中使用的是PyOpenCV,如果你使用python(x,y) 2.7.2.2带的cv2模块的话,可以参考 http://hyry.dip.jp/tech/slice/slice.html/9

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号