避免使用固定点对数刻度的 pgfplots 中的舍入问题

避免使用固定点对数刻度的 pgfplots 中的舍入问题

下图中 1.1 的刻度比 1.1 的实际值略低。在 1.1 处添加一个额外刻度时,这种情况变得更加明显。有没有办法让刻度位于与其标签相对应的位置?

有一个相关问题(如何防止具有固定精度的 pgfplots 中出现舍入和重复的刻度标签?),但它只讨论了如何删除错误的标签。如果有一种方法可以保留标签,但又将它们放在正确的位置,那就更好了。

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    ymin=1,
    ymax=1.2,
    log ticks with fixed point,
    ymode=log
]
\addplot
coordinates {(1, 1.1) (2, 1.1) };

\end{axis}
\end{tikzpicture}
\end{document}

对数轴舍入问题

答案1

要将刻度线放置在其所属的位置,请通过值指定它们。

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    ymin=1,
    ymax=1.2,
    log ticks with fixed point,
    ymode=log,
    ytick={1,1.05,1.1,1.15,1.2}
]
\addplot
coordinates {(1, 1.1) (2, 1.1) };

\end{axis}
\end{tikzpicture}
\end{document}

演示

答案2

如果您已经有对数域中的坐标,只需删除轴环境中的 ymode=log。

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    ymin=1,
    ymax=1.2,
    log ticks with fixed point,
]
\addplot
coordinates {(1, 1.1) (2, 1.1) };

\end{axis}
\end{tikzpicture}
\end{document}

相关内容