📜  latex 图

📅  最后修改于: 2021-01-06 00:45:47             🧑  作者: Mango

latex 图

该图是数据的直观表示。以类似的方式,在Latex中使用图表进行说明。临时模型也是一种表示信息的方法,称为节点图。图形用于表示2D以及3D信息。

该软件包用于在Latex中实现图形。该软件包声明为:

\usepackage[all]{xy}

在这里,所有元素都一次定义了包,xy是用于绘制图形的轴。

基础图

各种类型的图形用于表示信息,下面列出了这些信息:

项目符号图

在项目符号图中,轴上的点命名为(x-point,y-point),其中x指向x轴上的点,y点是y轴上的点。相应的项目符号点在此处提到的(x,y)点处绘制。

节点的名称使用\ bullet_ {..}命令确定。

绘制项目符号图的命令是\ xygraph {…}

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

\xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::} % the first value (0,0) determines the origin for the graph. The second and the third value determines the length and positive or negative x and y axis.
!{(0,0) }*+ {\bullet_{m}} % the point for the bullet vertices is implemented after the (!) command.
!{(0,1) }*+ {\bullet_{n}} % -+- sign is used to add name to the vertex.
!{(2,1) }*+ {\bullet_{o}}
!{(4,-2)}*+ {\bullet_{p}}
}
\end{document}

输出:

现在,让我们更改积分的值。您可以轻松比较上述输出中的新输出。新代码是-

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

\xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,-1cm>::} % only last point, i.e., y-axis is changed to -1.
!{(0,0) }*+{\bullet_{m}}
!{(0,1) }*+{\bullet_{n}}
!{(2,1) }*+{\bullet_{o}}
!{(4,-2)}*+{\bullet_{p}}
}
\end{document}

此示例的输出是:

您可以轻松比较以上示例中的y轴与第一个示例中的y轴相反。同样,您可以根据需要更改值。

让我们考虑另一个示例,以更好地理解。现在,将轴的点更改为0.5。此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

\xygraph{
!{<0cm,0cm>;<0.5cm,0cm>:<0cm,0.5cm>::} % the value is changed to 0.5
!{(0,0) }*+{\bullet_{m}}
!{(0,1) }*+{\bullet_{n}}
!{(2,1) }*+{\bullet_{o}}
!{(4,-2)}*+{\bullet_{p}}
}
\end{document}

现在的输出将显示为:

如果要将项目符号或顶点图形包含在框架中,则需要使用fbox命令。

Latex中的fbox命令写为:

\ [\ fbox …要包含在框架内的文本。…. \]

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<-1cm,0cm>:<0cm,1cm>::} 
!{(0,0) }*+ {\bullet_{m}}
!{(0,1) }*+ {\bullet_{n}}
!{(2,1) }*+ {\bullet_{o}}
!{(4,-2)}*+ {\bullet_{p}}
}} \]
\end{document}

输出:

有向图

绘制有向图的过程与项目符号图的过程相同。您需要包括从顶点到特定顶点或项目符号的路径。路径被确定为“ r”-“ s ”,其中rs是特定的顶点。

此类示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

 \[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{q}}="q"
!{(1,0) }*+{\bullet_{r}}="r"
!{(2,1) }*+{\bullet_{s}}="s"
!{(3,-2)}*+{\bullet_{t}}="t"
"q"-"r" "t"-"q"
"r"-"s"
"s"-"t"
"t"-"s"
} } \]

\end{document}

输出:

箭头边缘

对于边缘的箭头,您需要使用-:-而不是–.-

代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

 \[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{q}}="q"
!{(1,0) }*+{\bullet_{r}}="r"
!{(2,1) }*+{\bullet_{s}}="s"
!{(3,-2)}*+{\bullet_{t}}="t"
"q":"r" "t":"q"
"r":"s"
"s":"t"
"t":"s"
} } \]
\end{document}

输出:

弯曲边缘

要弯曲边缘,需要在两个顶点之间使用-@ / ^ /。例如,如果要在a和b顶点之间绘制弯曲边缘,则需要将命令提到为“ a”-@ / ^ /“ b”

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

 \[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{q}}="q"
!{(1,0) }*+{\bullet_{r}}="r"
!{(2,1) }*+{\bullet_{s}}="s"
!{(3,-3)}*+{\bullet_{t}}="t"
"q":"r" "t":"q"
"r":"s"
"s"-@/^/"t"
"t"-@/^/"s"
} } \]
\end{document}

输出:

您也可以通过在命令之间指定弯曲边缘的长度来确定弯曲边缘的长度。对于1cm的长度,您需要提及-@ / ^ 1cm /

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}

\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{e}}="e"
!{(1,1) }*+{\bullet_{f}}="f"
!{(2.5,0.5) }*+{\bullet_{g}}="g"
!{(3,-1)}*+{\bullet_{h}}="h"
"e"-"f"
"f"-@/^2cm/"h"
"h"-"g"
"e"-@/^/"h"
"f"-@/^1cm/"g"
} } \]
\end{document}

输出:

边缘上的标签

您还可以标记图形的边缘。边的标签在有向命令的末尾指定为^(标签到特定顶点的距离) {e_1} 。您可以使用任何字符或数字来代替{e_1}命令。

此类示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{e}}="e"
!{(1,1) }*+{\bullet_{f}}="f"
!{(2.5,0.5) }*+{\bullet_{g}}="g"
!{(3,-1)}*+{\bullet_{h}}="h"
"e"-"f"^(0.6){c_1}
"f"-@/^2cm/"h" ^(0.6){e_2} 
"h"-"g" ^(0.8){a_3}
"e"-@/^/"h" ^(0.4){e_4}
"f"-@/^1cm/"g" ^(0.7){b_5}    
} } \]

\end{document}

输出:

颜色顶点和边缘

在\ bullet命令为顶点着色之前,需要提及颜色的名称。如果要为边缘着色,则需要在定向命令之前提及颜色名称。

您还需要指定xcolor包以在边缘或顶点上实现颜色。

给顶点着色的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\usepackage{xcolor}
\begin{document}

 \[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+[red]{\bullet_{q}}="q"
!{(1,0) }*+{\bullet_{r}}="r"
!{(2,1) }*+[blue]{\bullet_{s}}="s"
!{(3,-3)}*+[green]{\bullet_{t}}="t"
"q":"r" "s":"q"
"r":"s"
"q"-@/^/"t"
"t"-@/^/"s"
} } \]

\end{document}

输出:

给边缘着色的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\usepackage{xcolor}
\begin{document}

 \[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{q}}="q"
!{(1,0) }*+{\bullet_{r}}="r"
!{(2,1) }*+{\bullet_{s}}="s"
!{(3,-3)}*+{\bullet_{t}}="t"
"q":"r" "s":@[blue]"q"
"r":@[red]"s"
"q"-@/^/@[green]"t"
"t"-@/^/@[orange]"s"
} } \]

\end{document}

输出:

具有极坐标的双图

在空对象中,在每个顶点处指定原点以绘制图形。您需要根据多边形的边数确定角度。例如,为具有五个边的多边形指定72度的角度间隙,为六个边的多边形定义60度的角度间隙。

公式计算间隙= 360 / n

其中n =多边形的边数

对于角度不规则的间隙, latex 会产生误差。该图仅在全部均匀的情况下绘制。

指定角度,两个多边形之间的距离和顶点的命令写为:

!{(0,0); a(0)** {}?(1.0)} * + {\ bullet} =“ a1”

哪里,

(0,0)是原点
a(0)是角度,起点将为0。
(1.0)是边的长度。

a1是顶点的名称

以下是两个示例以说明上述过程。

下面给出了绘制双图三角形的第一个示例的代码:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0);a(0)**{}?(1.0)}*+{\bullet}="a1"
!{(0,0);a(120)**{}?(1.0)}*+{\bullet}="a2"
!{(0,0);a(240)**{}?(1.0)}*+{\bullet}="a3"
!{(0,0);a(0)**{}?(1.8)}*+{\bullet}="b1"
!{(0,0);a(120)**{}?(1.8)}*+{\bullet}="b2"
!{(0,0);a(240)**{}?(1.8)}*+{\bullet}="b3"
"a1"-"a2" "a2"-"a3" "a3"-"a1" 
"b1"-"b2" "b2"-"b3" "b3"-"b1" 
"a1"-"b1" "a2"-"b2" "a3"-"b3" 
} } \]

\end{document}

根据上面的公式,多边形的三个边使用120度的间隙。

输出:

第二个绘制双图八边形的示例的代码如下所示:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0);a(0)**{}?(1.0)}*+{\bullet}="b1"
!{(0,0);a(45)**{}?(1.0)}*+{\bullet}="b2"
!{(0,0);a(90)**{}?(1.0)}*+{\bullet}="b3"
!{(0,0);a(135)**{}?(1.0)}*+{\bullet}="b4"
!{(0,0);a(180)**{}?(1.0)}*+{\bullet}="b5"
!{(0,0);a(225)**{}?(1.0)}*+{\bullet}="b6"
!{(0,0);a(270)**{}?(1.0)}*+{\bullet}="b7"
!{(0,0);a(315)**{}?(1.0)}*+{\bullet}="b8"
!{(0,0);a(0)**{}?(1.8)}*+{\bullet}="c1"
!{(0,0);a(45)**{}?(1.8)}*+{\bullet}="c2"
!{(0,0);a(90)**{}?(1.8)}*+{\bullet}="c3"
!{(0,0);a(135)**{}?(1.8)}*+{\bullet}="c4"
!{(0,0);a(180)**{}?(1.8)}*+{\bullet}="c5"
!{(0,0);a(225)**{}?(1.8)}*+{\bullet}="c6"
!{(0,0);a(270)**{}?(1.8)}*+{\bullet}="c7"
!{(0,0);a(315)**{}?(1.8)}*+{\bullet}="c8"
"b1"-"b2" "b2"-"b3" "b3"-"b4" "b4"-"b5" "b5"-"b6" "b6"-"b7" "b7"-"b8" "b8"-"b1"   
"c1"-"c2" "c2"-"c3" "c3"-"c4" "c4"-"c5" "c5"-"c6" "c6"-"c7" "c7"-"c8" "c8"-"c1"    
"b1"-"c1" "b2"-"c2" "b3"-"c3" "b4"-"c4" "b5"-"c5" "b6"-"c6" "b7"-"c7" "b8"-"c8"
} } \]

\end{document}

在上面的代码中,我们采用了多边形的8个面。通过公式计算出的角度间隙为45度。

输出:

图中的循环

循环在顶点上创建。开发循环的方法是用减号@ (a1,a2)修改edge命令,其中a1和a2是进出方向。方向的选择为l(左),u(上),r(右),d(下)。 dr,dl,ur,ul方向用于四个对角线。

下面给出了创建循环的代码:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}

\[ \fbox{ \xygraph{
!{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::}
!{(0,0) }*+{\bullet_{q}}="q"
!{(2,1) }*+{\bullet_{s}}="s"
!{(3,-2)}*+{\bullet_{t}}="t"
"q"-"s" "s"-"t"
"q"-"t"
"q" -@(lu,ld) "q"
"s" -@(ru,rd) "s"
"t" -@(ld,rd) "t"
} } \]


\end{document}

输出:

您可以根据需要进行尽可能多的循环。