数据血缘关系图 工具_如何在论文中画出漂亮的插图?用它!丨城市数据派

e41c255bae01be5ceb220565a0ce390f.png

【你投稿了没?10万+作者“平台好才是真的好”,也许下一个就是你!】(点击看详情) 是由城市数据派主办的征稿活动,小派在此恭候派友们投稿分享! 【本期看点】 LaTeX是一种非常好用的文档编辑软件,overleaf作为一款在线LaTeX编辑系统,它的出现使得LaTeX的使用门槛急剧降低。不过LaTeX除了具有优秀的文档编辑功能之外,还具有强大的图形绘制与数据可视化功能。结合LaTeX在线系统overleaf,本文将介绍如何用LaTeX画出漂亮的论文插图,实例包括时空序列数据可视化、时空数据张量复原技术流程图、贝叶斯网络,源代码来源于GitHub开源项目 awesome-latex-drawing (该项目目前已获得450+次标星、70+次fork),网址为: https://github.com/xinychen/awesome-latex-drawing   本期投稿   b7a9e0e3c5eb2eae76b5836cb864373e.png 作者:cat 数学爱好者 一、LaTeX 基本介绍 bc621261a38113c5116424bf61d28868.png 众所周知,LaTeX是一种基于TEX的排版系统,也是一款非常好用的文档编辑软件,LaTeX在生成复杂表格和数学公式方面具有突出的表现,因此,它非常适用于生成高质量的数学类文档。除编辑文档外,LaTeX也支持绘制各类图形,目前已经有非常多的相关工具包。可以说,LaTeX是一款与时俱进、功能极其强大的软件。 4ed0c5ba1de58be32988ae719d46ecfc.png ▲ 图1  LaTeX logo   遗憾的是,LaTeX并不像我们常用的Word这般“亲民”甚至容易上手,LaTeX是通过程序,更确切地说是通过一连串命令来编辑文档的,这使得很多初学者对LaTeX望而却步。 af562723ee358aba3befd48bf01eaf7c.png ▲ 图2   LaTeX绘图实例:时序张量回归示意图   4af08b4b41f68660c41039fac0af8b46.png ▲ 图3  LaTeX绘图实例:贝叶斯时序矩阵分解的贝叶斯网络  

在图形绘制与数据可视化方面,相比常用编程语言(如Python、Matlab),LaTeX具有一定的优势:

① 在大量科技论文的插图中,LaTeX插入公式非常方便;

② LaTeX在绘图方面比常用编程语言更加灵活,例如绘图样式和图例均可手动调整;

③ LaTeX具有大量的图形绘制与数据可视化的工具包(例如tikz),这一点类似于Python(Python具有良好的开发社区,matplotlib、pyplot等工具包在可视化方面表现不俗)。

    二、在线LaTeX系统:overleaf bc621261a38113c5116424bf61d28868.png

overleaf是一款在线的LaTeX编辑系统,一直以来,被广大科研工作者誉为科研神器。当然,overleaf并非浪得虚名,其在设计上神奇的地方在于:

  • 免安装,免配置。简单来说就是,你什么都不需要安装,只要打开浏览器,输入overleaf.com,在该网址的网页界面注册账号就可以使用LaTeX了。

  • 包容万象,如你所需,应有尽有。只要输入\usepackage{}就可以调用工具包。

仅此两点,overleaf已经可以让绝大多数LaTeX用户啧啧称赞了。overleaf能让绝大多数LaTeX用户不再为本地安装LaTeX及其工具包的各种报错而抓狂。除此之外,overleaf还有一个非常显著的特点,它支持文档的多人协同编辑,通过添加合作者便可参与编辑。

  cd870aa8210c88520535d58943b9fbe7.png ▲ 图4  在线LaTeX系统overleaf的网页界面 (图片截图自网址为https://www.overleaf.com)     三、LaTeX的几个基本命令 bc621261a38113c5116424bf61d28868.png

- 创建文档,例如,创建绘图文档则可选用工具包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文档。

  024d42aa83df8aa6adeb427a69568d29.png ▲ 图5  根据基本命令创建一个文档内容为“Helloworld!”的main.tex, 并将其编译成PDF文档     四、LaTeX绘图实例 bc621261a38113c5116424bf61d28868.png

实际上,LaTeX在绘图方面的表现得益于tikz工具包的开发,tikz是LaTeX原生支持的工具包,可以绘制各类科技论文中的插图,这其中包括二维图、三维图、流程图、示意图。

当然,一直以来,LaTeX绘图的缺点也很明显:难度较高,入门需要花费一定的时间。为了让更多人接触和使用LaTeX进行科技绘图,以下将选取几个绘图实例进行详细讲解。

ca761a4a45da6a7864213d2c806e54f9.png ▲ 图6 本文选取的几个绘图实例效果图   1. 路段车速数据的时间序列

一般而言,时间序列是在不同时间上收集的数据,主要用于描述某观测变量随时间的动态变化过程。在时空数据中,大量连续时间观测数据均可归为时间序列,其中一部分数据属于多元时间序列,也存在相当一部分数据属于多维时间序列。在城市道路上,某条路段每间隔一定时间(如10分钟)获取的平均车速数据(抑或是车流量)是一种比较常见的时间序列。

使用LaTeX绘制时间序列可按如下步骤进行操作:

(一)在overleaf中创建一个项目

如下图所示,可选择空白项目,然后调用所需的工具包。

  3d273a4f7785523877a8d91b500f6ae5.png ▲ 图7  在overleaf中定义一个名为example的文件,自动生成的main.tex可设置和调用基本工具包,如tikz和pdfplots   (二)读入时间序列数据文件 当然,也可以在main.tex文件中添加数据。如下图所示,数据文件speed1.data的第一列为时间标签,第二列为具体对应的车速值,数据文件的定义以\begin{filecontents}开始、以\end{filecontents}结束。 5630652c431c2a44da665036a94bc2f3.png ▲ 图8  在main.tex文件中读入时间序列数据,并以.data为拓展名进行命名  

(三)指定图例

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

  c3e9ad5811e60189ed60eeea4404f962.png ▲ 图9  在main.tex文件中指定绘图图例,并设置横纵坐标轴  

(四)输出图形

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

  6bedbdd16e6304488ab4bb60b9451d2c.png ▲ 图10  打开main.tex文件、点击recompile就可以生成图形可视化效果,图中左侧为代码区域,右侧为输出pdf文件预览区域   2. 时空交通数据修复技术框架

LaTeX在绘制技术框架方面也具有突出的优势,以时空交通数据修复技术为例,我们仅需要短短几步便可得到一份漂亮的可视化效果。具体而言:

(一)在overleaf中创建一个项目

(二)读入并插入所需的底图文件

例如下图红框标示出来的curve1.pdf和curve2.pdf,将两个文件的位置稍作调整即可。

  cff92515b9216aeffde8940c6d0256cc.png ▲ 图11  读入并插入底图文件  

(三)设计三维张量

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

  59f4b8a58949230dda09b3a8c84ae382.png ▲ 图12  定义顶点设计三维张量,再通过\draw{}函数设置图形透明度  

(四)对各部分图形进行组合

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

  dd4ddd8a1f019e4d7228a4a03af7e87b.png ▲ 图13  将各部分图形通过调整坐标进行组合,完成时空交通数据修复技术框架   3. 张量分解的贝叶斯网络

尽管当下有很多支持绘制贝叶斯网络的软件,但单就支持数学公式而言,LaTeX无外乎是绝佳的选择。用LaTeX绘制贝叶斯网络时,需要将图形与数学公式进行组合,目前,工具包bayesnet支持绘制各类贝叶斯网络,调用tikz和bayesnet后,基本的图形命令为三种:

  • \node:绘制节点,可标记贝叶斯网络中的变量;

  • \path:绘制箭头,可标记贝叶斯网络中的变量间概率依赖关系;

  • \plate:绘制平面,可标记变量的数目。

  3236c274581e5b47944b654d55eeaeb3.png ▲ 图14  利用LaTeX绘制张量分解的贝叶斯网络,网络中包含节点、箭头和平面,基本命名可调用工具包tikz和bayesnet中的部分函数   4. 时序矩阵分解的贝叶斯网络 与张量分解的贝叶斯网络绘制相似,时序矩阵分解的贝叶斯网络也是由node、path、plate三个基本图形绘制命令构成,通过使用工具包tikz和bayesnet即可实现。 ac52400b45d0c91cb2cee1857310c9fa.png ▲ 图15  利用LaTeX绘制的时序矩阵分解贝叶斯网络     5. 矩阵分解的示意图

用LaTeX绘制下图所示的示意图时,需要将图形与数学公式进行组合,调用tikz后,基本的图形命令只有两个:

  • \draw:绘制图形,例如图中的矩形、公式节点;

  • \filldraw:绘制带填充的图形,例如图中红色和绿色的矩形。

  8f69da0a6b764df87647294ee52b55c9.png ▲ 图16  基于时序矩阵分解的时空交通数据预测示意图   五、后记 bc621261a38113c5116424bf61d28868.png

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

64b47da296453a8ebf9e8c4812d9c79b.gif

 期待合作 

商业合作、投稿等,请联系客服微信号,加好友必须备注:合作+姓名 5b8361ff8ae56eadfa3139b5df79c257.png

 更多服务 

4e04514e9a320c70a248d2713f8b9b15.png eee1e2480833f2ad394c5dfb0efcebd7.png f102dc08d4876bde8c3078dd66dfa5a6.png c26cd6ceaf3399149ecab4420a314697.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为 DataHub 的专家,我需要再次纠正一下之前的回答。DataHub 和 DolphinScheduler 是两个不同的开源项目,它们虽然都是与大数据相关的项目,但是功能和用途有所不同。接下来我将为您介绍开源的 DataHub 元数据工具如何获取 DolphinScheduler 中的数据血缘关系,并给一个具体的案例。 开源的 DataHub 元数据工具是一款基于 DataHub 的元数据管理工具,可以自动化地收集和管理数据的元数据信息。其中,元数据管理包括数据血缘关系的记录和展示。具体步骤如下: 1. 在 DataHub 中创建需要记录数据血缘的 Topic,并设置需要记录血缘信息的字段。 2. 在 DolphinScheduler 中创建数据血缘任务,指定需要记录数据血缘的数据源和表,并执行任务。 3. 在 DataHub 元数据工具中添加 DolphinScheduler 的元数据源,配置数据血缘任务的信息。 4. 开启元数据采集任务,DataHub 元数据工具会自动从 DolphinScheduler 中获取数据血缘信息,并保存到元数据库中。 5. 在元数据工具中查看数据血缘关系,可以查看到每个数据的来源和去向,以及数据在流程中的处理状态和时间。 下面是一个具体的案例,假设我们有一个需求,需要实时统计某个数据源中数据血缘关系,以及数据在流程中的处理状态。 1. 在 DataHub 中创建一个 Topic,名为 data_topic,并设置需要记录数据血缘的字段。 2. 在 DolphinScheduler 中创建数据血缘任务,指定要记录数据血缘的数据源和表。 3. 在 DataHub 元数据工具中添加 DolphinScheduler 的元数据源,配置数据血缘任务的信息。 4. 开启元数据采集任务,DataHub 元数据工具会自动从 DolphinScheduler 中获取数据血缘信息,并保存到元数据库中。 5. 在元数据工具中查看数据血缘关系,可以查看到每个数据的来源和去向,以及数据在流程中的处理状态和时间。 通过以上步骤,我们就可以实时获取 data_topic 中数据血缘关系,以及数据在流程中的处理状态。同时,DataHub 元数据工具可以自动化地管理数据的元数据信息,提高数据管理的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值