下图中 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}