2017-12-04 24 views
3

私はいくつかのデータをプロットするために、python 3.6.2とmatplotlibでJupyter-notebookを使用しています。matplotlibの凡例のパフォーマンスの問題

私は私のデータをプロットすると、私はプロットに凡例を追加したい(基本的にはこれはどのラインを知るために)

しかしplt.legendを呼び出すと、プロット自体とほぼ同じくらい(時間がかかります私の理解にはただの瞬間でなければならない)。問題を再現する

最小限のおもちゃの問題:

import numpy as np 
import matplotlib.pyplot as plt 

# Toy useless data (one milion x 4) 
my_data = np.random.rand(1000000,4) 

plt.plot(my_data) 
#plt.legend(['A','C','G','T']) 
plt.show() 

ここでデータだけでランダムと役に立たないですが、それは私の問題を再現:私はplt.legend行のコメントを解除した場合 、実行はほぼ倍の時間

を要します

なぜですか?伝説だけでプロットを見て、4つのプロットが作成されていることを確認し、対応する文字列に各色を割り当てるボックスを描きますか?

なぜ単純な伝説には時間がかかりますか?

何か不足していますか? @bnaeckerで答えを複製

+2

デフォルトでは、凡例は潜在的な凡例ボックス内の各行からのポイント数の計算を必要とする「最適な」場所に配置されます。ポイントが多い場合は、時間がかかることがあります。 「ベスト」以外の場所を指定すると描画がはるかに高速になります。 – bnaecker

答えて

2

、この質問に回答するように:

をデフォルトでは、伝説の内側にあるどのように多くのポイント各行から計算必要とする「最良の」場所に配置されます潜在的な伝説の箱。ポイントが多い場合は、時間がかかることがあります。 「ベスト」以外の場所を指定すると描画がはるかに高速になります。 plt.legend(loc=3)

+0

はい、うまくいきました。ありがとう –

関連する問題