我可以绘制以下 MWE
\documentclass[beamer,crop]{standalone}
\usepackage{times}
\usepackage{pgfplots}
\usepackage{physics}
\pgfplotsset{
nice_axis/.style={
xlabel={$f \cdot T_c$},
ylabel={$10 \cdot \log_{10}\left( \abs{P_\sqcap \left( T_c \cdot f \right)}^{2} \right)$},
grid=both,
axis lines=box,
domain=-10:10,
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
nice_axis,
declare function={
P_sqr(\x) = sin(pi*\x)/(pi*\x);
},
]
\addplot[black, thick, mark=none] {10*log10(abs(P_sqr(\x)))};
\end{axis}
\end{tikzpicture}
\end{document}
但是,如果\x
进行了其他更改,例如,\fTc
则无法正确编译。我收到以下错误:
./PSD_rect_pulse.tex:26:PGF 软件包数学错误:抱歉,无法将输入 '' 解析为浮点数。不可读部分位于 '' 附近。(在 '10*log10(abs(P_sqr()))' 中)。
我认为\x
\addplot 有特殊含义,会尝试绘制它。如果是这样,是否要改变此行为以便\x
通过其他方式绘制它?
答案1
\x
是变量的默认名称,但您可以使用任何您想要的名称,只要您告诉它pgfplots
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\pgfplotsset{
nice_axis/.style={
xlabel={$f \cdot T_c$},
ylabel={$10 \cdot \log_{10}(|P_\sqcap ( T_c \cdot f )|^{2})$},
grid=both,
axis lines=box,
domain=-10:10,
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
nice_axis,
declare function={
P_sqr(\x) = sin(pi*\x)/(pi*\x);
},
]
\addplot[variable=\pippo,black, thick, mark=none] {10*log10(abs(P_sqr(\pippo)))};
\end{axis}
\end{tikzpicture}
\end{document}