减少 pgfplots xtick 标签数字格式中的空间?

减少 pgfplots xtick 标签数字格式中的空间?

具有以下 MWE:

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{intersections} %% named intersections
\usetikzlibrary{fit}
\usetikzlibrary{calc}


\begin{document}

\begin{tikzpicture}
\begin{axis}[
  width= 400pt,
  ymin = 0,
  ymax = 5,
  xmin = 0,
  xmax = 7,
  xtick = {0,1,...,7},
  scaled x ticks=real:2324823,
  xtick scale label code/.code={}, % this to not show extra scale label
]

\addplot [] coordinates {(0,0)};

\end{axis}
\end{tikzpicture}

\end{document}

...我得到的 xtick 标签格式如下:

测试_pdf

我希望数字和中心点之间的间距较小 - 这是之前在 Gimp 中编辑的图像,以显示我的偏好:

测试_pdf2

是否可以通过某种方式来实现 - 也许通过某些设置/pgf/number format/sci

答案1

根据我的评论:

正如@HarishKumar 所说,减少空格会导致结果不一致。文档文本中的科学记数法看起来会不一样,而且一般来说,摆弄 TeX 的间距建议并不是一个好主意。 被隔开是\cdot因为它是一个二进制运算符。

但如果您确实需要这样做,您可以添加
[/pgf/number format/sci generic={mantissa sep={\!\cdot\!},exponent={10^{#1}}}]
选项tikzpicture,如下面的完整代码所示。

或者,您可以使用括号\cdot来覆盖 TeX 的默认运算符间距:
[/pgf/number format/sci generic={mantissa sep={{{\cdot}}},exponent={10^{#1}}}]
需要额外的括号来防止 keyval 系统将括号视为另一个嵌套级别。

当然,您可以根据\cdot自己的喜好进一步调整间距/字距命令。

代码

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

% Choose either one of the following two lines
%\begin{tikzpicture}[/pgf/number format/sci generic={mantissa sep={\!\cdot\!},exponent={10^{#1}}}]
\begin{tikzpicture}[/pgf/number format/sci generic={mantissa sep={{{\cdot}}},exponent={10^{#1}}}]
\begin{axis}[
  width= 400pt,
  ymin = 0,
  ymax = 5,
  xmin = 0,
  xmax = 7,
  xtick = {0,1,...,7},
  scaled x ticks=real:2324823,
  xtick scale label code/.code={}, % this to not show extra scale label
]

\addplot [] coordinates {(0,0)};

\end{axis}
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

答案2

好吧,感谢这些问题:

...至少我找到了一种手动的方法来做到这一点 - 通过xticklabels在轴设置的末尾手动输入和覆盖:

...
  xtick scale label code/.code={}, 
  xticklabels={$0$, $4.3{\cdot}\!10^{-7}$, $8.6{\cdot}\!10^{-7}$, $1.29{\cdot}\!10^{-6}$, $1.72{\cdot}\!10^{-6}$, $2.15{\cdot}\!10^{-6}$, $2.58{\cdot}\!10^{-6}$, $3.01{\cdot}\!10^{-6}$ },
]
...

...结果是:

测试_pdf

... 这看起来并不坏 - 但谁愿意手动输入这种东西:)

因此,如果有某种自动的方法来包装\cdot并在其后添加负数学跳过\!,那就太好了......

相关内容