【问题标题】:How to prevent perfplot (matplotlib) graph labels from being truncated?如何防止 perfplot (matplotlib) 图形标签被截断?
【发布时间】:2020-12-26 12:11:31
【问题描述】:

我正在使用 perfplot 库(您可以 pip-install),它对函数进行基准测试并绘制它们的性能。

观察绘制的图形时,标签被截断。我怎样才能防止这种情况发生?

这是一个简单的 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)

这会产生:

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

【问题讨论】:

  • 在 Colaboratory (perfplot-0.8.8) 中,标签正常显示,没有被破坏。
  • @r-beginners 呵呵,我在终端而不是笔记本上运行它,所以我看到了不同的结果。

标签: python matplotlib perfplot


【解决方案1】:

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

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

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

示例输出:

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

【讨论】:

  • 这就是答案!感谢您向我展示 rcParams。将答案编辑得更简洁,但如果您不满意,请随时回滚。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
相关资源
最近更新 更多