我发现这段代码采用生成图表的表格并在 x 轴上添加对数刻度。我尝试使用 PDF 并在其上添加对数轴(x 和 y 均为对数)。我努力尝试但找不到解决方案。有人能帮帮我吗?
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{units}
\makeatletter
\pgfplotsset{
/pgfplots/log ticks with fixed point/.style={
/pgfplots/log number format basis/.code 2 args={
\begingroup
\edef\pgfplots@exponent{##2}%
\pgfkeysalso{/pgf/fpu}%
% configure the style to avoid crap like
% 10,000.2 or 0.000999937 :
\pgfqkeys{/pgf/number format}{%
fixed relative,
precision=3,
}%
\ifdim##1pt=10pt
\def\pgfplots@baselog{2.30258509299405}%
\else
\pgfmathparse{ln(##1)}%
\let\pgfplots@baselog=\pgfmathresult
\fi
\ifdefined\pgfplots@scaled@ticks@x@arg\pgfmathfloatparsenumber{\pgfplots@scaled@ticks@x@arg}\else\def\pgfmathresult{1}\fi%
\pgfmathparse{\pgfmathresult*exp(\pgfplots@exponent*\pgfplots@baselog)}%
\pgfmathprintnumber[#1]\pgfmathresult
\endgroup
},
}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmode=log,
log ticks with fixed point,
scaled x ticks=real:1e3
]
\addplot table {
0.0001 10
0.001 20
0.01 15
};
\end{axis}
\end{tikzpicture}
\end{document}
我想要从 PDF 中看到以下内容:
对于对数轴如下的图形:
答案1
作为起点:
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{units}
\makeatletter
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
ymin=1, ymax=100,
xlabel={$W$ [eV]},
ylabel={$P$ [W]},
legend pos=south east
]
\addplot table {
0.0001 10
0.001 20
0.01 15
};
\legend{initial distr.}
\end{loglogaxis}
\end{tikzpicture}
\end{document}
从 Matlab 模拟中,我将仅使用数据作为\addplot
宏中的坐标。