我正在尝试加速我的matplotlib图表~100K(理想情况下~5M)采样方波点并遇到一个我无法解释的性能问题。
这是一个简单的测试代码:
import time
import numpy as np
from matplotlib import pyplot as plt
arr1 = np.tile(np.array([0, .01, .02, .01, .02, .01, .03, .05, .07, 1, .9, .8, .9]), 10000) # 3 sec
arr2 = np.tile(np.array([0, .01, .02, .01, .02, .01, .03, .05, .07, 1, .9, .8, 1]), 10000) # 1 sec
for data in [arr1, arr2, arr1, arr2]:
fig = plt.figure()
start = time.clock()
plt.plot(data)
plt.show(False)
print "Elapsed %.1f" % (time.clock() - start)
plt.close()
绘图arr1
需要3秒钟,arr2
只需1秒钟。
唯一的区别在于最后一个(重复)元素,0.9对1,但它不应该改变垂直缩放,因此我不能解释这些图之间的3倍速度差异。我使用的是python 2.7 / matplotlib 1.5.1。
有人能告诉我第一种情况下性能下降的原因是什么?