如何禁用对数刻度上的指数符号?
我想要将 ...,$10^0$,$10^1$,$10^2$,... 替换为 ...,1,10,100,...
我曾尝试使用这个默认值(pgfplots 手册第 209 页):
\pgfplotsset{ log base 10 number format code/.code={$10^{\pgfmathprintnumber{#1}}$}
}
但我无法让它工作,而且这似乎是一种用复杂的方法来完成简单的事情。
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{log base 10 number format code/.code={$fun^{\pgfmathprintnumber{#1}}$}}
\begin{semilogxaxis}
[xmin=1, xmax=1000, domain=1:1000]
\addplot {ln(x)};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
答案1
除了其他答案之外,较新版本的pgfplots
带有样式log ticks with fixed point
。它的作用几乎相同:它重新配置数字打印机,以便以定点格式显示刻度。它的逻辑有些复杂,以避免舍入不准确和不同的对数基数。
以下是使用此新功能的结果:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin=1,
xmax=1000,
domain=1:1000,
log ticks with fixed point,
x tick label style={/pgf/number format/1000 sep=\,},
]
\addplot {ln(x)};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
答案2
你的意思是这样的吗:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{%
x tick label style={/pgf/number format/1000 sep=\,},
log base 10 number format code/.code={%
$\pgfmathparse{10^(#1)}\pgfmathprintnumber{\pgfmathresult}$%
}%
}
\begin{semilogxaxis}
[xmin=1, xmax=1000, domain=1:1000]
\addplot {ln(x)};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}