1.概述

在本教程中,我们将学习如何在LaTeX文档中绘制图表和图。

我们将首先讨论乳胶在计算机科学中作为可视化工具的使用。

然后,我们将看到一个构建非线性激活函数比较图的指导示例。我们还将学习如何绘制方框图和柱状图来比较多个分布。

在本教程结束时,我们将知道如何在LaTeX中绘制基本图表。

2.图纸在乳胶

2.1。乳胶,图表和计算机科学

LaTeX是一种强大的编程和标记语言,用于创建可定制的文档。它通常用于关于机器学习因为这有助于起草描述数据集, 这模型的体系结构他们和他们的算法的优化

它还促进了图和图表的创建以及它们的完全定制。这是通过使用专用软件包的使用,因为我们在下一节中看到,因为原始乳胶实现是某种方式缺乏这一方面。

在计算机科学和机器学习中,图表绘制是一项典型的任务,特别是可视化的分支专门致力于此。在科学文献中,LaTeX是一个核心软件,因为它输出完整的文档,而不仅仅是图表。因此,所有主要会议都有乳胶专用模板并要求将数字嵌入其中。

这使得了解如何在乳胶中绘制图表尤为重要,我们将在这里学习如何做到这一点。

2.2。图表乳胶套餐

乳胶中的大部分绘图是通过专用包装制作的。两个最重要的包装是:

  • PGF / TikZ,通常称为Tikz,这是一个用于绘制几何的一般包装
  • PGFPlots,它建立在TikZ的基础上,并进一步扩展了它的功能

对于与绘制这两种图形相关的大多数任务,使用这些包就足够了2D和3D图表。在本文中,我们特别关注于绘制分布和函数的2D图。然而,这些包也允许绘制其他对象,例如图形有限状态机,如果我们需要的话。

3.在TikZ中绘制函数

3.1。画笛卡尔平面

我们现在可以学习如何处理绘制A的任务物流功能,例如逻辑回归。我们还会画其他的符合赛族函数以此来展示它们的形状是如何不同的。

绘制函数的第一个任务是绘制笛卡尔坐标。我们可以在里面做到这一点tikzpicture环境,通过使用两次\[- >]画命令:

\documentclass{article} \ useppackage {tikz} \begin{document} \begin{tikzpicture} \draw[->](-3.1,0)——(3.1,0)节点[右]{$x$};\draw[->](0,-2.1)——(0,2.1)node[above] {$y$};结束\ {tikzpicture} \{文档}结束

这是输出:

呈现由QuickLaTeX.com

3.2。缩放和栅格

现在,图显示了两个带有适当标签的轴。我们决定让水平维占优势,因为我们知道,s型函数的上域很窄,但域却不是。图表在页面上看起来很小,这是我们可以通过传递a来解决的问题规模参数tikzpicture环境:

…开始\ {tikzpicture}[规模= 2]…结束\ {tikzpicture}…

这使图表的大小翻了一一:

呈现由QuickLaTeX.com

现在的面积是合适的,虽然这块地看起来仍然是空的。因为我们用的是一个包含在有限区间内的函数,我们可以用网格线来表示它在坐标轴上的值。最简单的绘制网格线的方法是绘制[点缀]网格命令:

\绘制[虚线](-3.1,-2.1)网格(3.1,2.1);

现在的图表有一个虚线网格:

呈现由QuickLaTeX.com

3.3。绘图函数

飞机本身现在已经完工了。我们已经准备好添加第一个函数,我们可以通过使用情节内部命令\画。这是它的语法:

\绘制[parametersofdraw] plot [parameterofplot]函数{functiondefinition};

作为一般规则,我们应该始终通过id参数到情节,以便我们在必要时可以参考情节。关于我们的任务,我们想画出逻辑斯蒂函数\sigma(x) = \frac {1} {1+ e^{-x}}穿蓝色衣服:

\[画颜色=蓝色)情节(id =物流)函数{1 / (1 + exp (- x))};

该命令产生此图表:

呈现由QuickLaTeX.com

注意函数是如何比横轴向左延伸得更远的,所以我们必须在它的极值处切割它。我们可以这样做,对于图中所有现在和未来的情节,通过指定领域参数的tikzpicture环境:

{tikzpicture}开始\[规模= 2,域=三3]…结束\ {tikzpicture}

这将曲线限制为间隔x \在[-3,3]

呈现由QuickLaTeX.com

这条曲线现在与图表吻合了。我们还想给它添加一个标签,我们可以通过稍微修改\画首先创建曲线的命令:

\[画颜色=蓝色)情节(id =物流)函数{1 / (1 + exp (- x))}节点[右]{$ f (x) = \压裂{1}{1 + e ^ {x}} $};

这将标签放在绘图最右边点的右侧:

呈现由QuickLaTeX.com

3.4。绘制更多的s型函数

因为我们想要比较logistic函数和其他sigmoidal函数,我们现在可以重复同样的步骤来画这三个额外的函数:

我们可以通过重复来这样做\画命令,每个函数一次:

\ draw [color =红色]绘图[id =超大]函数{tanh(x)}节点[右] {$ f_2(x)= tanh(x)$};\ draw [color =橙色]绘图[id =代数]函数{x / sqrt(1 + x * x)}节点[右侧] {$ f_3(x)= \ frac {x} {\ sqrt {1 + x^ 2}} $};\绘制[颜色=棕色]绘图[ID = Arctangent]功能{atan(x)}节点[右侧] {$ f_4(x)= arctan(x)$};

这将在图表中产生三个额外的图:

呈现由QuickLaTeX.com

3.5。完成触摸

两个功能的标签f_1,f_3.但是现在几乎重叠了。我们可以通过分配价值进一步传播标签0.15厘米到参数以下权利对的,以上对吧

呈现由QuickLaTeX.com

我们还可以注意到,函数的线条图并不是非常令人不稳定的。为了突出显示它们,我们可以给出参数很厚的有关\画命令:

呈现由QuickLaTeX.com

最后,我们可以使用\节点命令,语法如下:

\node[align=center, font=\bfseries, yshift=2em, xshift=-4.5em] (title) at (current bounding box.north) {Sigmoidal functions};

这将放置一个不可见的节点,包含标题作为标签,在当前图表的上界:

呈现由QuickLaTeX.com

3.6。完整代码

这就结束了我们用来比较s型函数的图表的开发。这是它的完整代码:

\documentclass{article} \ useppackage {tikz} \begin{document} \begin{tikzpicture}[scale=2, domain=-3:3] \draw[->](-3.1,0)—(3.1,0)节点[右]{$x$};\draw[->](0,-2.1)——(0,2.1)node[above] {$y$};\绘制[虚线](-3.1,-2.1)网格(3.1,2.1);\[很厚,颜色=画蓝色)情节(id =物流)函数{1 / (1 + exp (- x))}节点(右= 0.15厘米){$ f (x) = \压裂{1}{1 + e ^ {x}} $};\draw[very thick, color=red] plot[id=hypertan] function{tanh(x)}节点[右上角=0.15cm] {$f_2(x) = tanh(x)$};\draw[very thick, color=橙色]plot[id=代数]函数{x/sqrt(1+x*x)}节点[右下方=0.15cm] {$f_3(x) = \frac{x}{\sqrt{1+x^2}}$};\draw[very thick, color=brown] plot[id=arctan] function{atan(x)}节点[above right=0.15cm] {$f_4(x) =arctan (x)$};\node[align=center, font=\bfseries, yshift=2em, xshift=-4.5em] (title) at (current bounding box.north) {Sigmoidal functions};结束\ {tikzpicture} \{文档}结束

4.在PGFPLOTS中绘制盒子图

4.1。PGFPLOTS统计分析

要绘制图表,我们也可以使用包PGFPlots它建立在TikZ的基础上,但进一步扩展了其功能。pgfplot简化了常用结构的绘制,并稍微缩短了开发简单图表所需的时间。但是,我们现在将看到如何通过使用pgfplot(而不是TikZ)中可用的命令来构建不同类型的图表,而不是简单的函数图。

在这个引导的教程中,我们想象一下我们希望从四个单独的课程比较学生的表演他们参加了我们的考试,我们的分数是百分比。我们根据某一特定班级的学生在课堂上所付出的注意力的总体水平,对四种分数分布进行了标记,我们想通过统计分析来验证我们的期望是否正确。

我们在此任务中使用的图表是表示单变量分布中的主要统计数据的箱线图。方框图在初步数据分析当我们研究a的结构时数据集我们会在哪个训练机器学习算法

在pgfplot中,方框图包含在库中统计数据,因此,我们必须在文件序言中包括:

\documentclass{article} \ useppackage {pgfplot} \pgfplotsset{compat=1.16} \usepgfplotslibrary{statistics} \begin{document} \begin{tikzpicture} %我们的box plot将在这里\end{tikzpicture} \end{document}

请注意,我们通常必须指定一个\ pgfplotsset命令,并用comp参数为兼容而使用的pgfplot版本。pgfplot在这方面有点棘手,不允许向后兼容。

里面tikzpicture,现在我们可以设定一个环境。此环境在初始化后接受多个参数,该参数控制我们绘图的大多数宏观特征。例如,我们可以定义它的标题和坐标轴的标签:

... \ begin {轴} [xlabel = {$ x $},ylabel = {$ y $},title = box plot]%plot去这里\结束{轴} ...

这是我们的情节,目前是空的:

呈现由QuickLaTeX.com

4.2。添加方框图

现在我们可以将实际的框图添加到我们的图表中。箱形图本身是非参数的;但是,在pgfplot中根据以下参数定义了箱形图:

  • 分布的中位数
  • 一个低四分位数和一个上四分位数,分别对应于排序分布的第25和75个百分位数
  • 上下两个晶须,代表分布均值的一个标准差

如果我们预先计算了给定分发的这些参数,那么我们可以使用\ addplot内部命令环境,添加一个Boxplot准备了

... \ addplot + [boxplot准备= {较低的粉末= 25,低级= 37,中位数= 65,上四足= 72,上部keker = 81},]表[行sep = \\,y index = 0] {1 \\ 92 \\ 95 \\};......

这是最终的箱线图:

呈现由QuickLaTeX.com

套装表格,在上面的代码中,表示这个特定框图的异常值。如果我们没有预先计算a的参数Boxplot准备了,我们可以让pgfplot通过传递一个单变量分布来计算它们箱线图handler,然后将它们返回Boxplot准备了

4.3。多个箱图之间的比较

我们现在可以重复\ addplot +命令插入额外的框图到我们的图表:

呈现由QuickLaTeX.com

注意搞定怎么\ addplot +使用它所添加的每个连续框图,自动更改离群值的颜色和标记。

4.4。向图表添加标签

框图现在画对了,但是纵轴上的标签并不能提供信息。我们可以通过指定ytickyticklabels.参数的参数环境:

\ begin {轴} [xlabel = {score},title = {exame结果},yticklabels = {殷勤学生,绝不为人的学生,普通学生,高度参与的学生},]。.. \结束{轴}

注意,我们还替换了轴的文本和箱线图的标题,以更好地反映我们任务的性质。这是输出:

呈现由QuickLaTeX.com

4.5。完整代码

看来我们的期望是正确的,我们给每个班级分配的标签通常代表了他们的考试成绩。这进而结束了构建用于分析四个分布的箱线图的任务。

这是代码构建我们的图表的最终版本:

[xlabel={Score}, title={test results}, ytick={1,2,3,4}, yticklabels={专心的学生,不专心的学生,正常的学生,},] \addplot+ [boxplot prepared={lower whisker=25, lower quartile=37, median=65, upper quartile=72, upper whisker=81},] table[row sep=\\,y index=0] {1\\ 92\\ 95\\};\addplot+ [boxplot prepared={lower whisker=12, lower quartile=17, median=25, upper quartile=52, upper whisker=61},] table[row sep=\\,y index=0] {72\\};\addplot+ [boxplot prepared={lower whisker=12, lower quartile=25, median=50, upper quartile=75, upper whisker=87},] table[row sep=\\,y index=0] {\\};\addplot+ [boxplot prepared={lower whisker=62, lower quartile=64, median=70, upper quartile=72, upper whisker=81},] table[row sep=\\,y index=0] {5\\9\\13\\};结束\{轴}\ {tikzpicture} \{文档}结束结束

5.在PGFPLOTS中绘制条形图

5.1。定义环境

我们还可以使用PGFplots绘制其他类型的图表,例如条形图,用于比较多个分布。柱状图特别适合于当我们想快速可视化与同一类型测量相关的分布之间的差异时。一个常见的例子是比较时间序列中的财务数据在多个组织。

因此,在这个指导示例中,我们将使用条形图来比较三家公司(包括我们公司)在上一个财政年度的费用。我们可以从定义an开始环境,我们给它一个头衔ybar.作为其选择:

\begin{axis}[ybar, title={2019年公司费用}]…结束\{轴}

这是空的情节:

呈现由QuickLaTeX.com

如果我们使用XBar.相反,我们最终绘制水平条;但由于财务数据通常是垂直绘制的,这里我们也使用相同的惯例。那么,水平的刻度线应该代表我们预算的四个部分,文本{\{工资,资本,贷款,税收}}。因为我们对治疗不感兴趣X作为一个数字,而不是分类值,我们可以告诉环境中使用这四个符号作为值X。为此,我们指定符号x坐标参数:

\ begin {axace} [ybar,title = {公司费用在2019年},符号x coords = {薪金,资本,贷款,税收}]

这将改变水平刻度:

呈现由QuickLaTeX.com

这将自动删除额外的刻度,并允许我们使用与每年相关联的字符串值作为X任何数据点的坐标。它也创建了标签之间的重叠,但是我们马上会修复这个问题。

5.2。添加酒吧

我们可以首先通过使用该数据在图表上绘制数据\ addplot命令,正如我们在以前的练习中所做的那样:

\addplot+坐标{(薪金,150)(资本,158)(贷款,142)(税收,164)};

相应绘制出相关的条形图:

呈现由QuickLaTeX.com

坐标,我们指定我们希望数据源自我们指示的特定元组,而不是表示包含它们的CSV文件。数据现在正常,但是是时候删除标签之间的重叠。我们可以用扩大x限制选择环境:

开始\{轴}[…那扩大x限制=0.2]

现在标签显示正确:

呈现由QuickLaTeX.com

然后,我们可以重复相同的程序并为其他两家公司添加数据:

呈现由QuickLaTeX.com

5.3。完成触摸

图表快画好了。我们现在可以添加一个图例,并在顶部附近为每个条添加值

关于第一个,我们可以用传说\命令。我们还通过传说POS.环境避免重叠。关于每个酒吧的值,我们可以用它绘制它们附近的节点坐标同一环境的选项。最后,我们也可以删除y-轴,现在是多余的,和顶部的部分X设在:

\ begin {轴} [...,传奇POS =西北,节点附近的弦,轴Y线=无,轴X线=底部] ... \图例{我们的公司,竞争对手1,竞争对手2} \结束{轴}

现在图表很完美,清洁:

呈现由QuickLaTeX.com

5.4。完整代码

我们的条形图现已完成。这是复制它的完整代码:

\ documentclass{文章}\ usepackage {pgfplots} \ pgfplotsset{兼容= 1.16}\{文档}{tikzpicture} \ \开始开始开始{轴}[ybar、标题={公司费用2019},象征性的x坐标={工资、资金、贷款、税收},传说pos =西北,y轴行= none,轴x线=下,节点坐标附近扩大x = 0.2,\addplot+坐标{(薪金,150)(资本,158)(贷款,142)(税收,164)};\addplot+坐标{(薪金,143)(资本,146)(贷款,169)(税收,182)};\addplot+坐标{(工资,162)(资本,156)(贷款,149)(税收,165)};\传奇{我们公司,竞争者1,竞争者2};结束\{轴}\ {tikzpicture} \{文档}结束结束

6.结论

本文研究了如何在LaTeX中绘制基本图表。

具体来说,我们学习了如何使用TIKZ包绘制函数的函数,以及带有PGFPLOTS的框图和条形图。

来宾
0.评论
内联反馈
查看所有评论