如您所见,我的图当前具有比例因子为 10^6 和 10^5 的节点标签:
我的目标是为每个节点标签指定 10^6 的比例因子:
所以我的问题是:如何在科学数字格式中明确设置指数?
\begin{tikzpicture}
\begin{axis}[
width=6cm,
xtick=\empty,
ybar,
ymin=0,
ymax=3e6,
bar width=1cm,
scaled y ticks=base 10:-6,
ymajorgrids,
nodes near coords={\pgfmathprintnumber[sci,precision=1]{\pgfplotspointmeta}}
]
\addplot+[blue] coordinates {(0, 100 000)};
\addplot+[teal] coordinates {(0, 200 000)};
\addplot+[orange] coordinates {(0, 2 500 000)};
\end{axis}
\end{tikzpicture}
答案1
我不确定您是否可以让 PGF 数学解析器执行此操作(可能是一个有用的功能请求),但您可以使用siunitx
'\num
宏,它有一个fixed-exponent
选项:
\documentclass{report}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=6cm,
xtick=\empty,
ybar,
ymin=0,
ymax=3e6,
bar width=1.4cm,
scaled y ticks=base 10:-6,
ymajorgrids,
nodes near coords={
\pgfmathfloattofixed{\pgfplotspointmeta} % Convert floating point to fixed point
\num[
scientific-notation = fixed,
fixed-exponent = 6,
round-mode = places,
round-precision = 1,
exponent-product=\cdot
]{\pgfmathresult}}
]
\addplot+[blue] coordinates {(0, 100 000)};
\addplot+[teal] coordinates {(0, 200 000)};
\addplot+[orange] coordinates {(0, 2 500 000)};
\end{axis}
\end{tikzpicture}
\end{document}