为什么用python画图_为什么使用Matplotlib绘图太慢?

本文探讨了为何使用Matplotlib进行绘图时可能会出现速度较慢的问题,并提供了优化示例,包括减少不必要的重绘和利用blitting技术,以实现更高的帧率。此外,还介绍了matplotlib的animation模块来进一步提升动画性能。
摘要由CSDN通过智能技术生成

首先,(尽管这根本不会改变性能)考虑清理你的代码,类似这样:import matplotlib.pyplot as plt

import numpy as np

import time

x = np.arange(0, 2*np.pi, 0.01)

y = np.sin(x)

fig, axes = plt.subplots(nrows=6)

styles = ['r-', 'g-', 'y-', 'm-', 'k-', 'c-']

lines = [ax.plot(x, y, style)[0] for ax, style in zip(axes, styles)]

fig.show()

tstart = time.time()

for i in xrange(1, 20):

for j, line in enumerate(lines, start=1):

line.set_ydata(np.sin(j*x + i/10.0))

fig.canvas.draw()

print 'FPS:' , 20/(time.time()-tstart)

通过上面的例子,我可以达到10fps。

简单的说一下,根据你的确切用例,matplotlib可能不是一个好选择。它面向出版质量数据,而不是实时显示。

然而,你可以做很多事情来加速这个例子。

有两个主要原因,为什么这是如此缓慢。

1)调用fig.canvas.draw()重绘所有内容。这是你的瓶颈。就你而言,你不需要重新绘制轴边界,刻度标签等等。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值