pgfplots:图形太大

pgfplots:图形太大

我在使用 pgfplots 时遇到了问题,花了一段时间才将问题最小化。我尝试添加两条线并填充它们之间的区域。曲线的点超出了轴区域。使用“compat=newest”会导致图形过大。使用“compat=default”时,图形会在轴处被剪裁。

以下 MWE 显示了该问题:

\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}

\pgfplotsset{compat=newest}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=-90,
            xmax=90,
            ymin=-90,
            ymax=90,
            ]
            \addplot[name path=A] table{
                -90     -80
                90      100
                };
            \addplot[name path=B] table{
                -90     -100
                90      80
                };
            \addplot fill between[of=A and B];
        \end{axis}
    \end{tikzpicture}
\end{document}

我尝试添加一些示例图片,但由于背景为白色,您无法看出差异。我一直在尝试获取可行的样本。

在这个例子中,图形比预期的稍微大一点。但在我的实际文件中,它的高度增加了约 50%,导致间距非常尴尬。现在我解决了这个问题compat=default。还有其他解决方案吗?提前谢谢您。

答案1

这是自 1.8 版以来的预期行为。我们可以通过设置键来“修复”它clip bounding box,如 v 1.12 手册第 325 页所述。在 1.8 版之前,此键的默认值为default tikz,它将边界框剪裁到轴上。现在,默认值为upper bound,这会改变行为,如您所见。关键字compat=default引入了版本pre 1.3(在 v 1.12 手册第 11 页中有说明),因此使用旧行为。我们可以通过简单地设置 中相应键的值来恢复旧行为pgfplotsset

\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}

\pgfplotsset{compat=1.12, clip bounding box=default tikz}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=-90,
            xmax=90,
            ymin=-90,
            ymax=90,
            ]
            \addplot[name path=A] table{
                -90     -80
                90      100
                };
            \addplot[name path=B] table{
                -90     -100
                90      80
                };
            \addplot fill between[of=A and B];
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容