




在图形绘制与数据可视化方面,相比常用编程语言(如Python、Matlab),LaTeX具有一定的优势:
① 在大量科技论文的插图中,LaTeX插入公式非常方便;
② LaTeX在绘图方面比常用编程语言更加灵活,例如绘图样式和图例均可手动调整;
③ LaTeX具有大量的图形绘制与数据可视化的工具包(例如tikz),这一点类似于Python(Python具有良好的开发社区,matplotlib、pyplot等工具包在可视化方面表现不俗)。

overleaf是一款在线的LaTeX编辑系统,一直以来,被广大科研工作者誉为科研神器。当然,overleaf并非浪得虚名,其在设计上神奇的地方在于:
-
免安装,免配置。简单来说就是,你什么都不需要安装,只要打开浏览器,输入overleaf.com,在该网址的网页界面注册账号就可以使用LaTeX了。
-
包容万象,如你所需,应有尽有。只要输入usepackage{}就可以调用工具包。
仅此两点,overleaf已经可以让绝大多数LaTeX用户啧啧称赞了。overleaf能让绝大多数LaTeX用户不再为本地安装LaTeX及其工具包的各种报错而抓狂。除此之外,overleaf还有一个非常显著的特点,它支持文档的多人协同编辑,通过添加合作者便可参与编辑。


– 创建文档,例如,创建绘图文档则可选用工具包tikz格式下的标准文档类型。
documentclass[tikz, border = 0.1cm]{standalone}
– 调用工具包,例如,绘制图形的tikz、tikz-3dplot工具包、数学公式工具包amsmath。
usepackage{tikz, tikz-3dplot}
usepackage{amsmath, amsthm, amssymb}
usepackage{xcolor}
– 编写文档正文
begin{document} % 开始文档
文档内容 % 编辑文档
end{document} % 结束文档
上述三个步骤为LaTeX绘图甚至编辑文档的基本格式,在上述命令的基础上,将源文件设置为.tex格式即可开始编写文档。如下图所示,在左侧的main.tex键入上述几行基本命令,并填入文档内容为“Hello world!”,点击编译按钮,即可得到右侧带有“Hello world!”的PDF文档。


实际上,LaTeX在绘图方面的表现得益于tikz工具包的开发,tikz是LaTeX原生支持的工具包,可以绘制各类科技论文中的插图,这其中包括二维图、三维图、流程图、示意图。
当然,一直以来,LaTeX绘图的缺点也很明显:难度较高,入门需要花费一定的时间。为了让更多人接触和使用LaTeX进行科技绘图,以下将选取几个绘图实例进行详细讲解。

一般而言,时间序列是在不同时间上收集的数据,主要用于描述某观测变量随时间的动态变化过程。在时空数据中,大量连续时间观测数据均可归为时间序列,其中一部分数据属于多元时间序列,也存在相当一部分数据属于多维时间序列。在城市道路上,某条路段每间隔一定时间(如10分钟)获取的平均车速数据(抑或是车流量)是一种比较常见的时间序列。
使用LaTeX绘制时间序列可按如下步骤进行操作:
(一)在overleaf中创建一个项目
如下图所示,可选择空白项目,然后调用所需的工具包。


(三)指定图例
选择横纵坐标,并对坐标轴进行定义,如下图所示。

(四)输出图形
如下图所示,打开main.tex文件并点击recompile就可以生成绘图的pdf文件。

LaTeX在绘制技术框架方面也具有突出的优势,以时空交通数据修复技术为例,我们仅需要短短几步便可得到一份漂亮的可视化效果。具体而言:
(一)在overleaf中创建一个项目
(二)读入并插入所需的底图文件
例如下图红框标示出来的curve1.pdf和curve2.pdf,将两个文件的位置稍作调整即可。

(三)设计三维张量
这一步稍微繁琐一点,首先需要根据所设置的顶点坐标,创建立方体结构,如下图所示,然后再考虑在draw{}函数中设置三维张量的图形透明度。

(四)对各部分图形进行组合
如下图所示,各部分图形需要采用箭头进行逻辑连接,与此同时,仍需要细心调整各图形的坐标,从而使得图形在视觉上具有连贯性。

尽管当下有很多支持绘制贝叶斯网络的软件,但单就支持数学公式而言,LaTeX无外乎是绝佳的选择。用LaTeX绘制贝叶斯网络时,需要将图形与数学公式进行组合,目前,工具包bayesnet支持绘制各类贝叶斯网络,调用tikz和bayesnet后,基本的图形命令为三种:
-
node:绘制节点,可标记贝叶斯网络中的变量;
-
path:绘制箭头,可标记贝叶斯网络中的变量间概率依赖关系;
-
plate:绘制平面,可标记变量的数目。


用LaTeX绘制下图所示的示意图时,需要将图形与数学公式进行组合,调用tikz后,基本的图形命令只有两个:
-
draw:绘制图形,例如图中的矩形、公式节点;
-
filldraw:绘制带填充的图形,例如图中红色和绿色的矩形。


LaTeX在图形绘制和数据可视化方面具有得天独厚的优势,本文通过实例解析,希望更多人学会并使用LaTeX进行绘图。当然,笔者深信,当你真正开始一项LaTeX绘图项目时,一定会被它强大的绘图功能所吸引。

期待合作

更多服务




原文始发于微信公众号(城市数据派):如何在论文中画出漂亮的插图?用它!丨城市数据派