对于理工科的学生而言,通过对实验数据可视化,可以让别人更加直观的理解实验结果。相比于使用像 Excel 等基础工具,专业的绘图软件更加强大,几乎可以满足任何数据图表的定制需求。我身边的很多朋友都会使用 Origin 绘图,这款软件应该是 Windows 平台上最强大的专业绘图工具,在校大学生还能 申请 免费的教育使用资格。

前段时间,自己开始将 macOS 用作日常使用的主力平台,但遗憾地发现 Origin 并没有提供支持 macOS 的版本。然后,相继尝试了 Scidavis, QtiPlot, Plot 等开源绘图工具,感觉交互和设计都不尽如人意。再后来,就发现了今天要推荐的 DataGraph,一款非常优秀的 2D 图表绘制软件。

我认为,一款优秀的绘图工具应该要兼顾到以下几个方面:

  1. 功能全面。这当然是一款优质应用的基础,尤其是在对图表的自定义层面,需要能画出作者需要对图形样式。
  2. 易用性好。应用上手难度低,绘图逻辑清晰,交互自然。我自己认为,Origin 并没有做好这一点。
  3. 美观度高:每一种图表的默认样式都是开发者精心调过的,直接画出来就比较好看。同时,软件本身也要美观。当然,Origin 也没有做到。

DataGraph 概览

下图是 DataGraph 的主界面,总共包含有 5 个组件。分别是:缩略图区、数据显示区、数据处理区、绘图动作区,以及图像预览区域。

DataGraph 默认主界面样式

对于这 5 个组件区域,它们的详细功能划分如下:

  1. 缩略图区:DataGraph 支持在一个绘图软件中绘制多张图,缩略图区主要是用来选择和激活当前需要编辑的图形。
  2. 数据显示区:该区域显示了数据表格,你可以对数据进行增删改查。
  3. 数据处理区:该区域可针对数据属性进行修改,改变数据显示格式,对行和列进行组织化管理。
  4. 绘图动作区:该区域是绘图操作的核心区域,通过不同的绘图动作,对图像的样式进行修改。
  5. 图像预览区:预览绘制的图像,还可以拖动调节显示大小和比例。

你可能会觉得这个界面看起来好复杂,好拥挤。不用担心,这其实是各区域组件完全展开后的样式,实际的使用过程中,你可以根据需要调整各组件的位置和大小。

按需求调节后的简洁界面

一般情况下,当我们绘制一张 2D 图表时,会是如下的操作流程:

  1. 导入数据文件,数据会呈现在显示区域。
  2. 编辑数据属性。定义每一列是时间、日期,或者数值型数据?显示为科学计数的样式,还是保留 n 位小数点?
  3. 选择图表样式。选择需要绘制的基础图形样式。散点图、折线图还是雷达图?
  4. 定制图形样式。选择完基础样式后,对样式进行组合和自定义修改以满足需要。
  5. 预览并导出。最后一步,当然是对图形进行预览并导出需要的文件格式。

对于绘图流程的 5 个步骤,基本上都能从 DataGraph 划分出的 5 个主要区域中找到对应关系。所以说,我认为 DataGraph 的设计逻辑清晰而连贯。而实际的体验中,DataGraph 基本上没有学习成本,就算你没有看过任何介绍或者教程,初次上手之后就能很快适应。

数据导入

DataGraph 顶部菜单的 Data 选项掌控着关于数据导入和数据表整理的相关功能。

数据菜单

对于数据导入,我们一般都会比较关系支持导入的文件格式。没有问题,DataGraph 全面支持常见的数据文件格式。并可以在导入过程中设置分隔符,以及完成基本的数据转换操作。

DataGraph 有很多细节做的非常棒,并且非常符合用户的正常使用逻辑。比如,你可以直接拖拽数据文件到窗口内完成数据加载操作,或者拖动以改变数据集行列的位置顺序。除此之外,我非常喜欢的一个特性就在可以拷贝像 Excel,SPSS 等窗口内的某一区域数据,直接粘贴到 DataGraph 中,DataGraph 还能正确读取列名等。

复制并粘贴为 DataGraph 格式数据

目前,DataGraph 在 Mac App Store 上架的 4.2.1 正式版本尚未支持连接数据库读取数据。但是,Beta 版本已经在测试这一功能,相信不久之后就能推出。

Beta 版本中的连接数据库功能

模块化的图形绘制

使用 DataGraph 进行图形绘制的过程复杂也简单。复杂的地方在于,自定义需要调节较多的参数。而简单的地方在于,模块化绘图十分清晰。整个绘图的操作基本是都是在「绘图动作区」完成,模块式的绘图使得整个绘图过程非常高效。

首先,每一张图都会有如下图所示的,最基本的 3 个绘图模块。3 个模块分别控制着全局参数(字体、字号等),坐标轴参数(位置、比例等),以及画布参数(画布边距,背景等)。

绘图动作区域默认的 3 个基础模块

然后,根据自己的需要向绘图区添加更多的模块用以绘制更复杂的图形。更多的模块包含在顶部的 Command 菜单栏中,点击就可以看到 DataGraph 拥有丰富的图形样式,基本满足各式各样的 2D 图形绘制需要。

除了图形样式,Command 菜单栏还包括了像注释、图例等绘图过程中相关的模块,且均已在下图中进行说明。

更多绘图模块菜单

Add Function 模块

下面就列举几个我特别喜欢的绘图模块。Add Function 可以很方便地绘制函数图像。只需要输入函数式,并设置好定义域就大功告成了。

Add Function 函数图像绘制模块
函数图像绘制样例

虽然 macOS 内置的 Grapher 应用也可以绘制函数图像,但自定义程度与 DataGraph 的 Add Function 模块相比就显得很弱了。

Add Fit 模块

当你绘制折线图时,正常情况下,相邻点之间是通过直线连接的。此时,通过 Add Fit 模块可以对数据点完成拟合,绘制出一条更加光滑的曲线。如果所示,紫色虚线是采用多项式拟合后的结果。

使用 Add Fit 模块对离散数据进行多项式拟合
拟合后示例图像(紫色虚线)

Add Magnification 模块

Add Magnification 同样是我非常喜欢的绘图模块。很多时候,数据点或线相距很近,该模块可以非常方便地对局部区域放大,使得图像展示出更多的细节。而操作更是简单直观,只需要拖动调节大小即可。

使用 Add Magnification 模块对图像局部放大
拖动窗口调节模块作用区域和大小

动态图像制作

除了静态 2D 图形的绘制,DataGraph 还支持动态图形绘制。详细来讲,绘制图形往往存在一个或多个特性变量,我们需要绘制出该变量变化过程的动态图像。这里拿上文函数图像绘制部分的 F(x)=x * sin(x) 举例,我们对该函数稍作变化,添加一个变量系数 c,变成 F(x)=x * sin(c * x)

绘制函数模块

然后,点击 DataGraph 主界面窗口左下角的打开动画面板。将系数 c 设置为变量,Range 区间设为(0, 1),动画持续时间 Duration 为 10 秒。

动画面板

点击右下角的播放按钮,就可以在预览窗口看到图形的动画效果了。最后,你可以将动画导出。

制作动画图形

图形导出

图形绘制完成之后,就可以通过顶部菜单栏的 Export Graphic 选项导出图形了。DataGraph 充分考虑了图形用于不同用途的需要,除了支持常见的 JPG, PNG 等格式,同时也支持像 PDF, EPS 等矢量格式。相信用于日常分享或者科研论文都已经足够了。

DataGraph 图像导出窗口

结语

DataGraph 兼具颜值和专业于一身,已经成为了我最喜欢的 2D 绘图软件。进一步讲,就算说其是全平台最好的 2D 绘图软件都不为过。

DataGraph 由数据科学家打造,他们对数据可视化过程中的一些痛点把握到位,产品使用起来自然得心应手。图像自定义选项看起来复杂,但绘图逻辑非常清晰,所以掌握起来并不困难。除此之外,DataGraph 运行十分稳定,从我一段时间的高强度使用看来,没有出现过闪退的情况,而程序卡死也基本没有发生。

由于 DataGraph 本身包含的内容实在太多,单就一篇文章无法做到全面细致的介绍。通过对功能的大致了解,相信你可能已经产生了兴趣。在我看来,DataGraph 的目标用户应该是那些每天和数据打交道的人,尤其是理工类的研究生群体和科研人员。

作为一款专业软件,DataGraph 售价并不便宜。目前,你可以通过 官网 和 Mac App Store 两个渠道购买,售价为 588 元。虽然价格稍贵,我认为物有所值。