私はいくつかのデータをプロットするために、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で答えを複製
デフォルトでは、凡例は潜在的な凡例ボックス内の各行からのポイント数の計算を必要とする「最適な」場所に配置されます。ポイントが多い場合は、時間がかかることがあります。 「ベスト」以外の場所を指定すると描画がはるかに高速になります。 – bnaecker