使用 pgfplot 绘制半对数图

使用 pgfplot 绘制半对数图

我正在尝试绘制某些滤波器的频率响应图。这是我目前拥有的代码:

\begin{tikzpicture}
\begin{semilogxaxis}[xlabel=Frequency, ylabel=Gain, xmin=1, xmax=20000, ymin=0, ymax=2]

\addplot[domain=1:1e4,color=red] {250000/(x*x + 500*x + 250000)};

\end{semilogxaxis}
\end{tikzpicture}

它的作用是创建这个: 阴谋

有人知道为什么红线在 4 左右停止,以及如何防止这种情况发生?

答案1

据我所知,问题的原因是涉及远超过 10^5 的数字的计算,此时内部计算器开始中断,因此 pgfplot 根本没有绘制发生这种情况的任何点。

我通过在外部生成一个表并加载它来“解决”它,对我来说效果很好。

\begin{figure}[ht]
\caption{2-pole Lowpass filter frequency response}
\centering
\resizebox{\textwidth}{!}{

\begin{tikzpicture}
\begin{axis}[xlabel=Frequency, ylabel=Gain, xmin=1, xmax=5, ymin=0, ymax=2]

\addplot[mark=none, color=red] file {lowpassfrequencyresponse.dat};

\end{axis}
\end{tikzpicture}

}

\end{figure}

相关内容