Latex 图形(Graphs)

Latex 图形(Graphs) 首页 / Latex入门教程 / Latex 图形(Graphs)

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

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

\usepackage[all]{xy}

在这里,all立即定义了程序包, xy 是用于绘制图形的轴。

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

项目符号图

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

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

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

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
  \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle

\xygraph{  
    !{<0cm,0cm>;<1cm,0cm>:<0cm,1cm>::} % 第一个值 (0,0) 确定图形的原点。 第二个和第三个值确定长度以及 x 和 y 轴的正负。
    !{(0,0) }*+ {\bullet_{m}} % 
    !{(0,1) }*+ {\bullet_{n}} 
    !{(2,1) }*+ {\bullet_{o}}  
    !{(4,-2)}*+ {\bullet_{p}} %+- 符号用于为顶点添加名称。 
    }  
\end{document}

输出:

Latex Graphs

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

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \xygraph{  
        !{<0cm,0cm>;<1cm,0cm>:<0cm,-1cm>::} % 第一个值 (0,0) 确定图形的原点。 第二个和第三个值确定长度以及 x 和 y 轴的正负。
        !{(0,0) }*+ {\bullet_{m}} % 
        !{(0,1) }*+ {\bullet_{n}} 
        !{(2,1) }*+ {\bullet_{o}}  
        !{(4,-2)}*+ {\bullet_{p}} %+- 符号用于为顶点添加名称。 
        }  
\end{document}

此示例的输出是:

Latex Graphs

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

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

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \xygraph{  
        !{<0cm,0cm>;<0.5cm,0cm>:<0cm,0.5cm>::} % 值更改为 0.5 
        !{(0,0) }*+ {\bullet_{m}} % 
        !{(0,1) }*+ {\bullet_{n}} 
        !{(2,1) }*+ {\bullet_{o}}  
        !{(4,-2)}*+ {\bullet_{p}} %+- 符号用于为顶点添加名称。 
        }  
\end{document}

现在的输出将显示为:

Latex Graphs

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

Latex中的 fbox 命令写为:

\[\fbox ...要封装在框架中的文本..... \]

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \[ \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}

输出:

Latex Graphs

有向图

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

此类示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \[ \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}

输出:

Latex Graphs

箭头边缘

对于边缘的箭头,您需要使用:冒号而不是 - 横线

代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \[ \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}

输出:

Latex Graphs

弯曲边缘

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

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
    \[ \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}

输出:

Latex Graphs

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

此示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
  \[ \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}

输出:

Latex Graphs

边缘标签

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

此类示例的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
  \[ \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}

输出:

Latex Graphs

颜色顶点

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

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

顶点(vertices)着色的代码如下:

\documentclass[12pt]{article}
\usepackage[all]{xy}
\usepackage{xcolor} %引用颜色包
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
  \[ \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}

输出:

Latex Graphs

边缘(edges)着色的代码如下:

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

 \[ \fbox{ \xygraph{
!{;:::}
!{(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}

输出:

Latex Graphs

极坐标

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

该公式计算出间隙= 360/n

其中n =多边形的边数

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

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

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

在哪里,

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

a1是顶点的名称

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

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

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
 \[ \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度的间隙。

输出:

Latex Graphs

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

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
\[ 
    \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度。

输出:

Latex Graphs

循环图

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

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

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
   \title{How to learn latex graphs by learnfk} 
    \author{ Welcome learnfk.com } 
    \date{\today }
    \maketitle
    
\[ \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 Graphs

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

检索技术核心20讲 -〔陈东〕

Kafka核心源码解读 -〔胡夕〕

Vim 实用技巧必知必会 -〔吴咏炜〕

手机摄影 -〔@随你们去〕

分布式金融架构课 -〔任杰〕

手把手带你写一个Web框架 -〔叶剑峰〕

深入剖析Java新特性 -〔范学雷〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)