如何防止具有固定精度的 pgfplots 中出现舍入和重复的刻度标签?

如何防止具有固定精度的 pgfplots 中出现舍入和重复的刻度标签?

我有一个图,其 y 轴是线性的,具有固定精度且没有缩放。

\documentclass{独立}
\使用包{pgfplots}
\pgfplotsset{兼容=1.11}

\开始{文档}
\开始{tikzpicture}
  \开始{轴}[域=-0.1:0.1,
               yticklabel 样式={scaled ticks=false,
                                 /pgf/数字格式/固定,
                                 /pgf/数字格式/精度=3]
    \addplot+ { x^3 };
  \end{轴}
\结束{tikzpicture}
\结束{文档}

f(x) = x^3

y 刻度标签几乎没有表现力,因为 pgf 将中间的 0.0005 四舍五入为 0.001,产生了矛盾的标签。我并不想提高精度(页面空间限制),所以显然最好的解决方案是删除中间的“(-)0.001”刻度。有没有 pgfplots 选项可以实现这一点?一个选项是“不要放置刻度,以免标签四舍五入”、“标签之间的最小差异应为 0.001”或类似的。

我的文档中实际上有 100 个类似的图表,它们来自可能发生变化的数据,因此手动指定 y 刻度并不是首选方案。

答案1

一种可能性是比较修剪后的版本是否与原始刻度数不同。但这是一个相当普遍的规范,所以如果你的其他 99 个图有不同的奇怪间隔,我认为这不是万无一失的

\documentclass{standalone}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[domain=-0.1:0.1,
               yticklabel style={scaled ticks=false,
                                 /pgf/number format/fixed,
                                 /pgf/number format/precision=3},
  yticklabel={%
    \pgfmathprintnumberto[verbatim,fixed,precision=3]{\tick}\possiblytrimmedtick%
    \pgfmathparse{\possiblytrimmedtick == \tick ? int(1):int(0)}%
    \ifnum\pgfmathresult>0\relax$\tick$\else\fi%
 }
]
    \addplot+ { x^3 };
  \end{axis}
\end{tikzpicture}
\end{document}

enter image description here

相关内容