13

在使用 matplotlib 的 pgf 后端时,有时会看到如下错误:

! Dimension too large.
<to be read again> 
                   \advance 
l.69 ...o{\pgfqpoint{-11.400000in}{-235.382893in}}

这是来自 LaTeX 处理步骤,如果我向 matplotlib 请求 png,或者在处理嵌入了 pgf 文件的文档时,就会发生这种情况。当我设置与数据限制相比非常窄的轴限制时,就会发生这种情况。所以我假设 pgf 接收并尝试处理或绘制整个数据集,并且一些超出预期可见范围的点也在 pgf 的内部大小限制之外。

MWE:

import matplotlib as mpl
mpl.use("pgf")
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5,5)
y = 100*np.exp(x)

plt.xlim((-0.1,0.1))
plt.ylim((99,101))

plt.plot(x,y)
plt.savefig('exp.png')

我的问题:有什么方法可以让 matplotlib 为 pgf 提供一组有限的数据?或者有其他解决方案吗?我可以根据我想要的限制截断输入到 pyplot 命令中的数据,但我希望 matplotlib 有一个内部解决方案,可以让我免于大量的个案坐立不安。(还有一种情况是我在轴上添加样条补丁时,我不知道如何切断部分曲线。)

我查看了一些文档并看到了get_clip_on()get_clip_box()Line2D但是在任何常规绘图命令之后,前一种方法仍然返回 True ,而后者返回一些TransformedBbox规范,大概是代表轴本身的东西。

4

0 回答 0