
次のように定義される複素対数(虚数部)をプロットしたいと思います。
ln(z) = ln(r) + i * arg(z)
これは次のようになりますこれただし、3 次元/複雑な tikz プロットの経験がなく、この関数を適切にプロットするための表記法がわかりません。
答え1
pgfplots
複雑な座標をそのままでは扱えません。しかし、この場合、それは本当に必要ではないと思います。\mathds{C}\to\mathds{C}のマッピングを描画したいのですが、これは3Dプロットでは不可能ですが、目標結果は3Dプロットのようです。そのようなものを作成するには、独自の座標を使用できます。
({x*cos(y)},{x*sin(y)},{ln(x)+y})
ここで、x
は半径、y
は位相です。ここで問題となるのは、使用できる座標が 3 つしかないことです。ドメインに 2 つ使用したので、投影を使用する必要があります。使用している画像でどのような投影を使用しているかはわかりませんが、次のものに近いようです。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,width=10cm,height=14cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[trig format plots=rad,view={-50}{12},
colormap={adopted}{rgb255(0cm)=(151,0,250);
rgb255(1cm)=(219,0,70);rgb255(2cm)=(186,255,60)},
z buffer=sort,zmin=-3.5*pi]
\addplot3 [surf,domain=0.001:4,domain y=-3*pi:3*pi,samples=25,samples y=109]
({x*cos(y)},{x*sin(y)},{ln(x)+y});
\end{axis}
\end{tikzpicture}
\end{document}
または、異なる角度を使用します。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,width=10cm,height=14cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[trig format plots=rad,view={70}{20},
colormap={adopted}{rgb255(0cm)=(151,0,250);
rgb255(1cm)=(219,0,70);rgb255(2cm)=(186,255,60)},
z buffer=sort,zmin=-3.5*pi]
\addplot3 [surf,domain=0.001:4,domain y=-3*pi:3*pi,samples=25,samples y=109]
({x*cos(y)},{x*sin(y)},{ln(x)+y});
\end{axis}
\end{tikzpicture}
\end{document}
別の投影法を使用する場合は、これも組み込むことができます。