在使用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()
的{{1}}和get_clip_box()
,但是在任何常规的绘图命令之后,前一个方法仍会返回True,而后者返回一些{ {1}}规范,大概是代表轴本身的东西。