我正在使用带有python 3.6.2和matplotlib的Jupyter-notebook来绘制一些数据。
当我绘制数据时,我想在图中添加一个图例(基本上知道哪一行是哪个)
然而,调用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个图,并画了一个框,将每种颜色分配给相应的字符串?
为什么一个简单的传奇花了这么多时间?
我错过了什么吗?
答案 0 :(得分:2)
复制@bnaecker的答案,以便回答这个问题:
默认情况下,图例将放置在" best"位置,需要计算每行中有多少点位于潜在的图例框内。如果有很多分,这可能需要一段时间。指定" best"以外的位置时绘图要快得多,例如plt.legend(loc=3)
。