当创建这样的情节时
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
yticklabel style={
/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}}
}
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}
我尝试在 y 轴上使用科学计数法作为\times
尾数分隔符,而不是默认的\cdot
。但是指数没有显示出来。我查看了pgfplots
手册中的第 4.12.1 节和第 2.7 节pgfplotstable
,并按照那里的示例进行操作,但没有使用这种特殊情况的示例yticklabel
。
我该如何解决?
您可以在此处查看该图:
答案1
这似乎有效:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\pgfkeys{/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}}}
\begin{axis}[
scaled y ticks=false,
xticklabel style={/pgf/number format/.cd,fixed},
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
####
?
我们需要更多#
!确切地说是四个:####1
。
代码
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
yticklabel style={
/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent=10^{####1}}
}
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}
直接使用\pgfmathprintnumber
您可以直接将样式yticklabel
及其内部\tick
宏与 一起使用\pgfmathprintnumber
。上标是(您已经知道)第一个参数,但随着嵌套的进行,我们需要第二级,因此:##1
。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
yticklabel={
\pgfmathprintnumber[
sci,
sci generic={
mantissa sep=\times,
exponent={10^{##1}}
}
]{\tick}
}
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}
输出
答案3
您可以在手册中看到该tick scale binop
选项的解释。page 233
pgplots
尝试以下代码:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scaled y ticks=false,
yticklabel style={
/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}}
},
tick scale binop={\textbackslash times} % Change \cdot to \times as mantissa separator
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}
输出
编辑
Gonzalo Medina 已经发布了关于缺失指数的解决方法。以防万一这是如果选择不按照你的方式写尾数,则可以选择以下选项:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[tick scale binop=\times,
]
\addplot coordinates {
(1, 972817.3879)
(2, 1436186.725)
};
\end{axis}
\end{tikzpicture}
\end{document}