python - matplotlib 图例性能问题

标签 python matplotlib jupyter-notebook legend

我正在使用带有 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个图,然后画了一个方框,将每种颜色分配给对应的字符串?

为什么一个简单的图例要花这么多时间?

我错过了什么吗?

最佳答案

复制@bnaecker 的答案,这样这个问题就得到了回答:

默认情况下,图例将放置在“最佳”位置,这需要计算每条线上有多少点位于潜在的图例框内。如果有很多点,这可能需要一段时间。当指定“最佳”以外的位置时,绘图速度要快得多,例如plt.legend(loc=3)

关于python - matplotlib 图例性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47643925/

相关文章:

python - SPARQL 查询中的 HTTP 错误 500

python - 如何在 Bokeh (Python) 中处理图像

python - 有选择地从另一个 Jupyter Notebook 导入

python - 如何确定 python 脚本是否从 crontab 执行?

python - 为什么我不能打印 "\05"或 "\07"等?

python - 使用 Matplotlib、Python 的多个函数绘制为 1 个图形

tensorflow - "Using TensorFlow backend"。这是一个错误吗?

python-3.x - 由于 ModuleNotFoundError : No module named 'webdriver_manager' Ubuntu Python,无法运行运行脚本

python - Django查询模板中的manytomanyfield

python - Matplotlib:在同一轴位置显示次要刻度和主要刻度