ylim 带有负浮点数

ylim 带有负浮点数

有人可以解释一下为什么下面的代码可以完美编译:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\pgfplotsset{/pgf/number format/.cd, 1000 sep={}, assume math mode=true}

\begin{document}

\begin{tikzpicture}

\begin{axis}[%
width=4cm,
height=4cm,
ymin=-0.5,
ymax=0,
]
\addplot [forget plot]
table[row sep=crcr]{%
    5   -0.000535\\
};
\end{axis}
\end{tikzpicture}
\end{document}

如果我想

ymin=-0.1,

它不再编译。错误消息:

Missing $ inserted.

可能答案的线索:

  • 如果删除数学模式,则两种情况下都可以进行编译。但我不想删除它。

  • 如果我有ymin=-0.1ymax=0.5,它也会编译......

嗯...我不明白。

答案1

您的尝试失败了,因为当您更改为时,PGFPlots 会改变yticks/yticklabels的绘制方式(见左图)。这当然不能在文本模式下绘制,因为在文本模式下, 和都是未知的/无法解释的。ymin-0.1\cdot^

yticklabels为了避免这个问题,你可以将“back”的数字格式改为fixed(见右图)。(你yticklabel style也可以选择将该部分移至序言中。)

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        /pgf/number format/.cd,
            1000 sep={},
            assume math mode=true,
    }
\begin{document}
% dummy plot to show where the problem is coming from
\begin{tikzpicture}
    \begin{axis}[
        width=4cm,
        height=4cm,
        ymin=-0.1,
        ymax=0,
        % don't assume math mode
        /pgf/number format/assume math mode=false,
    ]
        \addplot table {
            5   -0.000535
        };
    \end{axis}
\end{tikzpicture}
% plot showing how to circumvent the problem
\begin{tikzpicture}
    \begin{axis}[
        width=4cm,
        height=4cm,
        ymin=-0.1,
        ymax=0,
        % change number format to `fixed'
        yticklabel style={
            /pgf/number format/fixed,
%            % (optionally change the `precision' to your needs)
%            /pgf/number format/precision=2,
        },
    ]
        \addplot table {
            5   -0.000535
        };
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

答案2

如果不需要assume math mode=true这个特定的tikzpicture,您可以传递/pgf/number format/assume math mode=falseaxis环境选项或tikzpicture环境选项以避免错误。

相关内容