多くのアンテナベースラインからデータを観測しています。私が現在取り組んでいるのは、それぞれが4x5サブプロット領域を持つ〜40の図をプロットすることです。 matplotlibで図をプロットして保存するとループが遅くなることが分かりました。たくさんの図をプロットして保存するときにmatplotlibのスピードを上げるには?
import numpy as np
import matplotlib.pyplot as plt
import time
...
PLT_PAGE_NUM = 39 # default is 39
SUB_PLT_NUM = 20 # default is 20
for pp in xrange(0,PLT_PAGE_NUM):
plt.figure(figsize=(20,12))
start_time = time.clock()
for kk in xrange(0,SUB_PLT_NUM):
plt.subplot(5,4,kk+1)
plt.plot(np.arange(0,TIME_LENGTH), xcor_real_arr[20*pp+kk,0:],'r-',
range(0,TIME_LENGTH), xcor_imag_arr[20*pp+kk,0:],'b-')
plt.title('XCOR of '+ ind_arr[20*pp+kk], color='k')
plt.savefig('test_imag_real'+str(pp)+'.png',format='png',dpi=100)
print 'Fig-'+str(pp)+' has been saved'
print "Excution time:", time.clock()-start_time
そしてexcution時間情報は、次のとおりです:ここに私のコードは、
######### Check your inputs setting #########
You have selected 2 files.
The time interval is From 2011-10-20_14:28:38 to 2011-10-20_15:10:54
Your time resolution is set to 1.125s
The total plot points number is: 100
Your frequency channel is: ch2
######### Hardworking...please wait #########
Fig-0 has been saved
Excution time: *2.52576639619*
Fig-1 has been saved
Excution time: *2.59867230708*
Fig-2 has been saved
Excution time: *2.81915188482*
Fig-3 has been saved
Excution time: *2.83102198991*
Program ends
あなたが見てきたように、私はちょうど約11秒を要した4つの数字をプロットします。 39の図形すべてをプロットして保存するのに約2分かかります。私はボトルネックがどこにあるのかわかりません。早くするのを手伝ってもらえますか? ありがとうございます!
unutbu、私はあなたのコードを実行しようとしました。私のラップトップの総排出時間が68.515999794秒に短縮されたことは素晴らしいことです。おかげさまで大変助かりました。同じ軸を再利用する(またはフリーズする)ことは良いヒントです! –