我想用 LaTeX 创建这样的图表:
我已经尝试过了pst-全部但我不知道该怎么做。所以我希望你能帮助我。PD:我已经在这个页面上搜索过这个问题,但没有找到任何可以帮助我的东西。
答案1
您可以尝试使用pgfplots
和tikz
。这很容易。
该图可能看起来像这样。
\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [<->] (0,4) node[left]{$ \text{Im} (z) $} -- (0,0) -- (4,0) node[below]{$ \text{Re} (z) $};
\draw [->] (0,0) -- (3,3)node[above right]{$ z+\beta $};
\draw [->] (0,0) -- (1,2)node[left]{$ \beta $};
\draw [dashed] (0,0) -- (2,1)node[right]{$ z $};
\draw [->] (2,1) -- (3,3);
\draw [dashed] (1,2) -- (3,3);
\end{tikzpicture}
\end{document}
答案2
这里有一个稍微不同的方法,使用 TikZ,它使用向量图书馆的算术calc
来放置一些箭头。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=Stealth]
\coordinate (Q) at (0,0);
\coordinate (RE) at (4,0);
\coordinate (IM) at (0,4);
%% axes
\draw[arrows=->] (Q) -- (RE) node [pos=1,below] {$Re(z)$};
\draw[arrows=->] (Q) -- (IM) node [pos=1,left] {$Im(z)$};
%% beta vector
\coordinate (beta) at (1.5,2);
\draw[arrows=->] (Q) -- (beta) node [pos=1,left] {$\beta$};
%% z vector
\coordinate (z) at (2.5,1);
\draw[dashed] (Q) -- (z) node[pos=1,right] {$z$};
%% betaSUMz
\coordinate (betaSUMz) at ($(beta)+($(z)-(Q)$)$);
\draw[arrows=->] (Q) -- (betaSUMz);
%% missing sides
\draw[dashed] (beta) -- (betaSUMz);
\draw (z) -- (betaSUMz);
\end{tikzpicture}
\end{document}
答案3
使用\pstricks
(可在有的条件下编译pdflatex
):
\documentclass[pdf]{standalone}
\usepackage{pstricks-add}
\usepackage{amsmath}
\DeclareMathOperator\re{Re}
\DeclareMathOperator\im{Im}
\begin{document}
$ begin{pspicture}
\psset{ticks=none, labels=none, arrowinset=0.2,arrows =c->, labelsep=3pt}
\psaxes{c->}(0,0)(5,5)[$\re (z)$,-90][$\im (z)$,180]
\pnodes(0,0){O}(3,1.6){Z}(1.6,3){B}(4.6,4.6){C}
\uput[l](B){$\beta $}\uput[r](Z){$z$}\uput[ur](C){$z +\beta $}
\ncline{O}{B}\ncline{O}{C}\ncline{Z}{C}
\psset{linestyle=dashed}
\ncline{O}{Z}\ncline{B}{C}
\end{pspicture} $
\end{document}
答案4
和MetaPost:
input latexmp
setupLaTeXMP(textextlabel=enable, mode=rerun, packages="amsmath");
numeric u; u = .75cm;
pair beta, re, im; beta = (u, 3u); re = (5u, 0); im = (0, 5u);
beginfig(1);
z = u*(3, 1.5);
for M = re, im, beta, z+beta: drawarrow origin -- M; endfor
drawarrow z--z+beta;
drawoptions(dashed evenly);
draw origin--z;
draw beta -- z+beta;
label.rt("$\text{Re}(z)$", re); label.lft("$\text{Im}(z)$", im);
label.lrt("$z$", z); label.lft("$\beta$", beta);
label.rt("$z+\beta$", z+beta);
endfig;
end.
使用命令行,您可以使用命令获取(PostScript)mpost
图形
mpost myfigure.mp
要将其转换为 PDF 图形,请mptopdf
对生成的 PostScript 文件应用该实用程序:
mptopdf myfigure.1
如果您不使用命令行,请参考您自己的 TeX 编辑器如何处理 MetaPost 程序。
结果:
获取 PDF 图形的另一种更直接的方法:将代码插入 LuaLaTeX 程序中,然后使用该luamplib
包,如下所示。 (结果相同。)
\documentclass[border=2mm]{standalone}
\usepackage{luamplib, amsmath}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
numeric u; u = .75cm;
pair beta, re, im; beta = (u, 3u); re = (5u, 0); im = (0, 5u);
beginfig(1);
z = u*(3, 1.5);
for M = re, im, beta, z+beta: drawarrow origin -- M; endfor
drawarrow z--z+beta;
drawoptions(dashed evenly);
draw origin--z;
draw beta -- z+beta;
label.rt("$\text{Re}(z)$", re); label.lft("$\text{Im}(z)$", im);
label.lrt("$z$", z); label.lft("$\beta$", beta);
label.rt("$z+\beta$", z+beta);
endfig;
\end{mplibcode}
\end{document}