如何防止 perfplot (matplotlib) 图形标签被截断?

时间:2020-12-26 12:11:31

标签: python matplotlib perfplot

我正在使用 perfplot 库(您可以通过 pip 安装),该库对函数进行基准测试并绘制其性能图。

观察绘制的图形时,标签被截断。我该如何防止这种情况发生?

这是一个简单的 MCVE:

import perfplot 
from itertools import chain

perfplot.__version__
# '0.8.8'

perfplot.show(
    setup=lambda n: [[1] * 100] * n,
    kernels=[
        lambda L: sum(L, []),
        lambda L: list(chain.from_iterable(L))
    ],
    labels=['list_concat_sum', 'list_concat_chain'],
    n_range=range(1, 500, 100),
    xlabel='# lists',
    logy=True,
    logx=True)

这会产生:

您会注意到图形标签被截断了。有没有办法防止这种情况,或更改图形以输出图例?

1 个答案:

答案 0 :(得分:2)

perfplot 似乎使用 matplotlib 进行显示。根据 github 站点,您可以将计算和绘图分开,从而可以为该图注入带有 rcParams 的自动格式(基本上是 plt.tight_layout())。

您可以在脚本前添加以下内容:

from matplotlib import pyplot as plt
plt.rcParams["figure.autolayout"] = True

示例输出: enter image description here

不过,在使用这种方法时,可能会与其他图进行交互。