python – 更新用imshow(),contour()和quiver()创建的数字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 更新用imshow(),contour()和quiver()创建的数字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1562字,纯文字阅读大概需要3分钟。
内容图文
![python – 更新用imshow(),contour()和quiver()创建的数字](/upload/InfoBanner/zyjiaocheng/701/de0f955037c044fb85624af69b37b65d.jpg)
我想知道是否可以更新使用contour()完成的轮廓,使用quiver()完成的矢量场和使用imshow()完成的图像,而无需实际再次调用这些函数或创建新图形,换句话说,是否有可能(并且通常是人们所做的)在不重新调用例程的情况下更新图形的元素.
我已经尝试过基于set_array()和pyplot.draw()的解决方案,但是我不能让它适用于矢量场和等高线图.
解决方法:
好吧,你可以通过在图像上调用.set_data(),然后在图上调用fig.canvas.draw()来进行imshow.我没有看到任何真正的性能优势,只是调用draw() – 两者都给我约25FPS与下面的基准(使用WXAgg作为后端).
import numpy as np
import matplotlib.pyplot as pp
import time
def animate_data(data):
fig,ax = pp.subplots(1,1)
# I'm not convinced that animated=True does anything either...
image = ax.imshow(data[0,:,:],animated=True)
# pp.draw()
fig.canvas.draw()
start = time.time()
tic = start
for ii in xrange(1,data.shape[0]):
if not(ii % 10):
toc = time.time()
print "FPS =\t%.6G" %(10./(toc-tic))
tic = time.time()
image.set_data(data[ii,:,:])
# pp.draw()
fig.canvas.draw()
print "Average FPS =\t%.6G" %(data.shape[0]/(time.time()-start))
fakedata = np.random.randn(200,512,512)
animate_data(fakedata)
在箭头的情况下,您可以使用.set_UVC()来更新图:
fig,ax = subplots(1,1)
u1 = np.random.rand(10,10)
v1 = np.random.rand(10,10)
c1 = np.random.rand(10,10)
q = ax.quiver(u1,v1,c1)
fig.canvas.draw()
u2 = np.random.rand(10,10)
v2 = np.random.rand(10,10)
c2 = np.random.rand(10,10)
q.set_UVC(u2,v2,c2)
fig.canvas.draw()
据我所知,你不能以同样的方式更新等高线图.我不确定无论如何都会获得太大的收益,因为任何解决方案仍然需要重新计算轮廓线应该用于给定的阵列输入.如果我是你,我会打电话给ax.contour()和fig.canvas.draw().
内容总结
以上是互联网集市为您收集整理的python – 更新用imshow(),contour()和quiver()创建的数字全部内容,希望文章能够帮你解决python – 更新用imshow(),contour()和quiver()创建的数字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。