对数对数轴中刻度的数字格式不会更改为科学计数法 `ax 10^b`,'a' 为实数,'b' 为整数

对数对数轴中刻度的数字格式不会更改为科学计数法 `ax 10^b`,'a' 为实数,'b' 为整数

我试图将 a 中的刻度数字格式设置loglogaxis为科学计数法a x 10^b(LaTeX 中的 $a \cdot 10^{b}$,a一个实数和b一个整数),但是不起作用。

我使用代码

\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{loglogaxis}
        [
            tick label style={/pgf/number format/.cd,sci,sci zerofill,precision=5}, % WHY DOES THIS NOT WORK?
            xtick={1,95}
        ]
            \addplot[no marks,domain=10^0:10^5] {x};
        \end{loglogaxis}
    \end{tikzpicture}
\end{document}

但该tick label style命令似乎没有改变任何东西。

應該10^1.989.5*10^1

我该如何解决?

答案1

代码

\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{loglogaxis}
        [   
            log number format code/.code=
            {
                \pgfkeys{/pgf/fpu}
                \pgfmathparse{exp(\tick)}
                \pgfmathprintnumber[sci,sci zerofill,precision=1]{\pgfmathresult}
                \pgfkeys{/pgf/fpu=false}
            },
            xtick={1,95}
        ]
            \addplot[no marks,domain=10^0:10^5] {x};
        \end{loglogaxis}
    \end{tikzpicture}
\end{document}

完成工作!

答案2

我很高兴与此同时(当我忙于日常工作时 :-))你找到了解决问题的方法。我的建议需要更多的“手工工作”,但它很简单:

\documentclass[margin=2cm]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{loglogaxis}
        [
            xtick={2,95},
            xticklabels={$2\cdot10^0$,$9.5\cdot10^1$}
        ]
            \addplot[no marks,domain=10^0:10^5] {x};
        \end{loglogaxis}
    \end{tikzpicture}
\end{document}

并给出以下结果:

在此处输入图片描述

相关内容