为什么
tick label style={/pgf/number format/.cd,sci,sci generic={mantissa sep=\times,exponent={10^{#1}}}}
无法正确工作?缺少指数。我想为 y 轴使用刻度标签数字格式 1 x 10^n,并使用 \times 作为分隔符。
梅威瑟:
% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
y tick label style={/pgf/number format/.cd,sci,sci generic={mantissa sep=\times,exponent={10^{#1}}}},
ymin=0,
ymax=1000,
]
\addplot [domain=0:1000] {x};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您可以使用
yticklabel={%
\pgfkeys{/pgf/number format/.cd,
sci,sci generic={mantissa sep=\times,exponent={10^{##1}}}
}%
\axisdefaultticklabel
}
或者
yticklabel={$\pgfmathprintnumber
[sci,sci generic={mantissa sep=\times,exponent={10^{##1}}}]
{\tick}$%
}
要得到
代码:
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
yticklabel={$\pgfmathprintnumber
[sci,sci generic={mantissa sep=\times,exponent={10^{##1}}}]
{\tick}$%
},
ymin=0,
ymax=1000,
]
\addplot [domain=0:1000] {x};
\end{axis}
\end{tikzpicture}
\end{document}