用乳胶绘制带有 pi 轴的 Argand 图?

用乳胶绘制带有 pi 轴的 Argand 图?

我正在尝试绘制一个 Argand 图,其圆心为 (0, −16π),半径16π

问题是,我的图表的实轴和虚轴与轴相邻,但我希望标签位于 Im 的虚轴正上方,实轴正右侧(目前它出现在实轴上方)。我还希望轴以 pi 为单位进行标记,这样它们就像 −32π, −16π,0,16π,32π

目前我还没有得到我的斧头在π

下面是我的代码片段:

\begin{tikzpicture}
\begin{axis}[
    xmin=-32*pi,
    xmax=32*pi,
    ymin=-32*pi*i,
    ymax=32*pi*i,
    axis equal,
    axis lines=middle,
    xlabel=Re\{$\mathcal{A}(s)$\},
    ylabel=Im\{$\mathcal{A}(s)$\},
    disabledatascaling]

\fill [opacity=0.2] (0,-16*pi) circle [radius=16*pi];
\end{axis}
\end{tikzpicture}
\end{center}

答案1

有时,直接使用 TikZ 更简单。毕竟这不是一个情节。

xy可让您缩放坐标坐标系。无需获取π涉及这里。

刻度是在画布坐标系中绘制的,因此它们不会随坐标坐标系。将轴向各个方向延伸约 10pt 也是如此。

代码

\documentclass[tikz]{standalone}
%\documentclass{article}
%\usepackage{tikz}
\usepackage{amsmath}
\DeclareMathOperator{\mRe}{Re}
\DeclareMathOperator{\mIm}{Im}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=Latex, x=+1mm, y=+1mm] % π equals 1mm
% 1. The circle
\fill[gray!50] (down:16) circle[radius=16];

% 2. The axes
\path[->, at end] % axes
  ([xshift=-10pt]left:32) edge
    node[right] {$\mRe\{\mathcal A(s)\}$} ([xshift=10pt]right:32)
  ([yshift=-10pt]down:32) edge
    node[above] {$\mIm\{\mathcal A(s)\}$} ([yshift=10pt]   up:32);

% 3. The ticks
\foreach \j in {-32, -16, 16, 32}{
  \draw[shift=(right:\j)] (down:2pt) node[below] {$\j\pi$} -- (   up:2pt);
  \draw[shift=(   up:\j)] (left:2pt) node[left ] {$\j\pi$} -- (right:2pt); 
}
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

答案2

你可以直接画出来。这个是用lualatex内置的元帖子语言。

在此处输入图片描述

您需要用 来编译它lualatex

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
numeric pi; 72 pi = 288;   % this is an arbitrary scale, so that pi is drawn as 4pt

% define the axes
path real, imag;
real = (left -- right) scaled 36 pi;
imag = real rotated 90;

% fullcircle paths have unit *diameter*
path C; C = fullcircle scaled 32 pi shifted (0, -16 pi);
fill C withcolor 7/8[blue, white]; 

% add some labels -- not sure that zero is needed
for i=-32, -16, 16, 32:
  draw (origin -- 3 down) shifted (i*pi, 0); label.bot("$" & decimal i & "\pi$", (i*pi, -3));
  draw (origin -- 3 left) shifted (0, i*pi); label.lft("$" & decimal i & "\pi$", (-3, i*pi));
endfor

% draw the axes
drawarrow real; label.rt("$\mathcal{A}(s)$", point 1 of real);
drawarrow imag; label.top("$\mathcal{A}(s)$", point 1 of imag);

endfig;
\end{mplibcode}
\end{document}

点击顶部的链接了解有关 MP 的更多信息。

相关内容