当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

Linux 上的数据可视化工具

    Linux® 上用来实现数据的图形可视化的应用程序有很多,从简单的 2-D 绘图到 3-D 制图,再到科学图形编程和图形模拟。幸运的是,这方面的工具有很多开放源码实现,包括 gnuplot、GNU Octave、Scilab、MayaVi、Maxima 等。每个工具都有自己的优缺点,并且都是针对不同的应用程序而设计的。对这些开放源码图形可视化工具进行一下探索,有助于我们更好地决定哪个工具最适合我们的应用程序。

可视化工具的简短列表

    在本文中,将对很多流行的 Linux 数据可视化工具进行一下调查,并对其中一些工具进行更深入的探讨。例如,某个工具是否为进行数值计算而提供了一种语言?这个工具是交互式的还是提供了一种批处理模式来单独进行操作?可以使用这个工具进行图像或数字信号处理吗?这个工具是否提供了语言绑定来支持与用户应用程序的集成(例如 Python、Tcl、Java 编程语言等)?另外还将展示一些工具的图形化处理能力。最后,将分析每个工具的长处,从而帮助我们确定哪个工具最适合完成计算任务或数据可视化。

在本文中所探索的开放源码工具包括(同时还给出了每个工具所使用的许可证):

  • Gnuplot(GPL)
  • GNU Octave(GPL)
  • Scilab(Scilab)
  • MayaVi(BSD)
  • Maxima(GPL)

Gnuplot

    Gnuplot 是一个非常好的可视化工具,它从 1986 年开始就存在了。如果没有 gnuplot 的图,就很难阅读论文。尽管 gnuplot 是命令行驱动的,但是它也在不断发展,现在也可以支持很多非交互式的应用程序了,例如它可以作为一个 GNU Octave 的绘图引擎使用。

    gnuplot 具有很好的可移植性,可以在 UNIX®、Microsoft® Windows®、 Mac OS® X 和很多其他平台上运行。它可以支持从 postscript 到新近的 PNG 等极为广泛的输出格式。

    gnuplot 可以以批处理模式进行操作,提供了一个命令脚本来生成一个图形,也是以非交互式模式来运行的,这让我们可以尝试一下它的特性来了解它们绘图的效果。

    在 gnuplot 中有一个对应于 UNIX 的数学库的标准的数学库可以使用。函数的参数支持整型、实型和复型。可以将数学库配置成弧度或角度(默认为弧度)。

    为了进行绘图,gnuplot 可以使用 plot 命令生成 2-D 图形,或使用 splot 命令生成 3-D 图形(作为 2-D projection)。使用 plot 命令,gnuplot 可以在直角二维坐标系中进行操作。splot 命令默认使用的是笛卡儿坐标系,不过也可以支持球面或柱面坐标系。也可以在图形中绘制等高线(如下面的图 1 所示)。有一种新风格的绘图 pm3d 可以支持绘制使用调色板进行映射的 3-D 和 4D 数据作为地图或地表图来使用。

    下面是一个简单的 gnuplot 例子,它给出了一个具有等高线和隐线消除的 3-D 图形。清单 1 给出了所使用的 gnuplot 命令,图 1 给出了所生成的图形结果。


清单 1. 简单的 gnuplot 函数图
set samples 25

set isosamples 26

set title "Test 3D gnuplot"

set contour base

set hidden3d offset 1

splot [-12:12.01] [-12:12.01] sin(sqrt(x**2+y**2))/sqrt(x**2+y**2)


    清单 1 充分显示了 gnuplot 的命令集是多么简单。采样速度和绘图密度是由 samples 和 isosamples 决定的,标题是由 title 参数为图形提供的。同时还启用了基本的等高线和隐线消除特性,最终的绘图是利用 splot 命令使用数学库内部的函数来创建的。结果如图 1 所示。


图 1. gnuplot 的一个简单绘图
gnuplot 的一个简单绘图

    除了创建函数图之外,gnuplot 还可以很好地对文件中包含的图形进行绘图。考虑如清单 2 所示的 x/y 数据对(这个文件的一个简短版本)。这个文件中给出的数据对表示一个两维空间中的 x 和 y 轴的数据。


清单 2. gnuplot 的示例数据文件(data.dat)
88 99

79 98

76 89

60 85

...

60 22


  如果希望在两维空间中绘制这些数据,并将每个数据点使用一条线连接起来,就可以使用清单 3 给出的 gnuplot 脚本。


清单 3. 对清单 2 中的数据进行绘图所使用的 Gnuplot 脚本
set title "Sample data plot"

plot 'data.dat' using 1:2 t 'data points', \

  "data.dat" using 1:2 t "lines" with lines


    结果如图 2 所示。注意 gnuplot 自动给出了轴的刻度,但是如果需要标注图形的位置,就可以对其进行控制。


图 2. 在 gnuplot 中使用数据文件进行简单的绘图
在 gnuplot 中使用数据文件进行简单的绘图

   Gnuplot 是一个很好的可视化工具,它非常出名,是很多 GNU/Linux 发行版的一部分。然而,如果希望进行基本的数据可视化和数值计算,那么 GNU Octave 可能是我们希望寻找的工具。

 

[1] [2] [3] [4] 下一页  

相关内容
赞助商链接