簡體   English   中英

matplotlib傳奇性能問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM