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 © 2024
京ICP备05028076号