本文概述
- 基础图
- 有向图
- 箭头边缘
- 弯曲边缘
- 边缘上的标签
- 颜色顶点和边缘
- 具有极坐标的双图
- 图中的循环
该软件包用于在Latex中实现图形。该软件包声明为:
\usepackage[all]{xy}
在这里, 所有人都一次定义了包, xy是用于绘制图形的轴。
基础图 各种图形用于表示信息, 下面列出了这些信息:
项目符号图
在项目符号图中, 轴上的点被命名为(x-point, y-point), 其中x指向x轴上的点, y点是y轴上的点。相应的项目符号点在此处提到的(x, y)点处绘制。
节点的名称是使用\ bullet_ {..}命令确定的。
绘制项目符号图的命令是\ xygraph {… }。
【Latex图graph】此示例的代码如下:
\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”, 其中r和s是特定的顶点。
此类示例的代码如下:
\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}
输出:
文章图片
你可以根据需要进行尽可能多的循环。
推荐阅读
- Latex积分
- Latex图像
- 使用Tikz的方程的Latex图
- Latex数学表达式
- Latex格式
- Latex图figure
- 使用Tikz的Latex流程图
- Latex字体大小和样式用法介绍
- 使用Tikz的Latex条形图和饼图