Tikz 极点零点三维图

Tikz 极点零点三维图

我需要在 tikz 中制作如图所示的 3D 图。这是传递函数的幅度图

H(s)= (s+1)(s+2)/(s+3)(s+1+j)(s+1-j)

很抱歉,我没有分享任何尝试,因为我对 tikz 3d 绘图一无所知。如果有人提供解决方案,那将是我的起点,然后我会在此基础上继续努力。

提前致谢。

在此处输入图片描述

我已尝试,但仍有一些事情需要纠正。

我根据不同资源的在线帮助绘制了该图表(附加代码和图片)。

现在的问题是

  • 它没有纠正在 yz 平面上绘制曲线的红线并给出此错误消息

软件包 pgfplots 错误:抱歉,您不能在此上下文中使用“y”。PGFPlots 需要采样一条线,而不是一个网格。请使用 [mesh] 选项结合 [samples y>0] 和 [domain y!=0:0] 来指示二维输入域。

  • 标签太小且放置不正确。

  • 如果有人可以设置视角,使它看起来就像书中的图片一样。

如果有人能在这方面提供帮助。

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{calc,math}
\pgfplotsset{compat=newest}

\pgfkeys{/pgf/declare function={H(\x,\y) = 3*((((((\x)^2-(\y)^2+3*(\x)+2)^2+((2*\x*\y)+3*\y)^2)+2.2204e-16)^(1/2))/(((((\x)^3+5*(\x)^2-3*\x*(\y)^2+8*x-5*(\y)^2+6)^2+(3*(\x)^2*y+10*\x*\y-(\y)^3+8*y)^2)+2.2204e-16)^(1/2)));}}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[    
    axis lines=middle, axis on top,
    axis equal image,
    width=50cm, 
    view={30}{10},      
    xmin=-4,
    xmax=0,
    ymin=-2,
    ymax=2,
    zmin=0,
    zmax=5,
    miter limit=1,   
    xlabel=$\sigma$,
    xlabel style={anchor=east,xshift=-5pt,at={(xticklabel* cs:.95)}}, 
    ylabel=$j\Omega$,
    zlabel=$\mathopen| H(s)\mathclose|$,
    zlabel style={anchor=north east},
    xtick = {-3,-2,-1,0},
    hide obscured x ticks=false,
    ytick = {-1,0,1},
    ztick = {2,4},
    ]

\addplot3[
        smooth,
        surf,
        faceted color=gray,
        line width=0.1pt, 
        fill=white,
        domain=-4:0,
        y domain = -2:2,
        samples = 50,
        samples y = 50,
        restrict z to domain*=0:5]
        {H(\x,\y)};

\addplot3[domain=-2:2,samples=70, samples y = 0,red, thick] ({0},{x},{H(0,x)});


    \end{axis}

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容