[英]matplotlib legend performance issue
我正在使用Jupyter-notebook和python 3.6.2以及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的答案,以便回答這個問題:
默認情況下,圖例將放置在“最佳”位置,這需要計算每個線在潛在圖例框內的點數。 如果有很多分,這可能需要一段時間。 指定“最佳”以外的位置時繪圖要快得多,例如plt.legend(loc=3)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.