如何防止 perfplot (matplotlib) 图形标签被截断?
How to prevent perfplot (matplotlib) graph labels from being truncated?
我正在使用 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)
这会产生:
您会注意到图表标签被截断了。有没有办法防止这种情况发生,或者更改图形以输出图例?
perfplot
好像用matplotlib来显示。根据 github 站点,您可以将计算和绘图分开,让您可以为该图注入自动格式(基本上 plt.tight_layout()
)和 rcParams。
您可以在脚本前添加以下内容:
from matplotlib import pyplot as plt
plt.rcParams["figure.autolayout"] = True
示例输出:
不过,在使用这种方法时,可能会与其他图形进行交互。
我正在使用 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)
这会产生:
您会注意到图表标签被截断了。有没有办法防止这种情况发生,或者更改图形以输出图例?
perfplot
好像用matplotlib来显示。根据 github 站点,您可以将计算和绘图分开,让您可以为该图注入自动格式(基本上 plt.tight_layout()
)和 rcParams。
您可以在脚本前添加以下内容:
from matplotlib import pyplot as plt
plt.rcParams["figure.autolayout"] = True
示例输出:
不过,在使用这种方法时,可能会与其他图形进行交互。