Linux操作系统中的数据可视化工具

文章作者 100test 发表时间 2007:03:14 16:49:58
来源 100Test.Com百考试题网


GNU Octave

GNU Octave 是一种高级语言,主要设计用来进行数值计算,它是 MathWorks 出品的 Matlab 商业软件的一个强有力的竞争产品。除了 gnuplot 所提供的简单命令集之外,Octave 还为进行数学编程提供了一种丰富的语言。我们甚至可以使用 C 或 C 语言编写自己的应用程序,然后与 Octave 进行交互。

Octave 最初是在 1992 年作为化学反应堆设计教科书的一个辅助软件而编写的。其作者希望能够帮助学生解决反应堆的设计问题,而不用调试 Fortran 程序。结果获得了一种非常有用的语言,并为解决数值问题提供了交互式环境。

Octave 可以以一种脚本化模式非交互地进行操作,或者通过 C 和 C 语言绑定进行操作。Octave 本身就有一种非常丰富的语言,该语言看起来与 C 语言非常类似,并有一个很大的数学库,包括信号和图像处理、音频处理以及控制理论所使用的一些特殊函数。

由于 Octave 使用了 gnuplot 作为其后端实现,因此使用 gnuplot 可以绘制的所有东西都可以使用 Octave 进行绘制。Octave 的确有一种更丰富的语言来进行计算,它有很多明显的优点,但是仍然有 gnuplot 的一些限制。

在下面这个 Octave-Forge Web 站点上提供的例子中(SimpleExamples),绘制了一个 Lorentz Strange Attractor。清单 4 给出了在使用 Cygwin 的 Windows 平台上 Octave 所使用的交互式对话框。这个例子展示了 lsode 的用法,这是一个常见的微分方程解算器。

清单 4. 使用 Octave 呈现 Lorentz Strange Attractor

GNU Octave, version 2.1.50 

Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 John W. Eaton.

This is free software. see the source code for copying conditions.

There is ABSOLUTELY NO WARRANTY. not even for MERCHANTIBILITY or

FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty.



Please contribute if you find this software useful.

For more information, visit http://www.octave.org/help-wanted.html



Report bugs to .



>> function y = lorenz( x, t )

y = [10 * (x(2) - x(1)).

x(1) * (28 - x(3)).

x(1) * x(2) - 8/3 * x(3)].

endfunction

>> x = lsode("lorenz", [3.15.1], (0:0.01:25)).

>> gset parametric

>> gsplot x

>>

图 3 给出的图是清单 4 中 Octave 代码的输出结果。

图 3. 使用 Octave 绘制的 Lorentz 图

GNU Octave(与 gnuplot 一致)可以使用 multiplot 特性在一个页面上呈现多个图形。使用这个特性,就可以定义要创建多少图形,然后使用 subwindow 命令来定制特定的图形。在定义好子窗口之后,就可以正常地生成自己的图形,然后再跳到下一个子窗口中(如清单 5 所示)。

清单 5. 在 Octave 中生成多个图形

>> multiplot(2,2)

>> subwindow(1,1)

>> t=0:0.1:6.0

>> plot(t, cos(t))

>> subwindow(1,2)

>> plot(t, sin(t))

>> subwindow(2,1)

>> plot(t, tan(t))

>> subwindow(2,2)

>> plot(t, tanh(t))

所生成的多图页面如图 4 所示。这是将相关图形搜集在一起进行比较和对比的一种很好的特性。

图 4. 使用 GNU Octave 绘制多图

我们可以认为 Octave 是一种使用 gnuplot 作为后台实现来进行可视化的高级语言。它提供了丰富的数学库,是 Matlab 的一个很好的免费替换产品。可以很容易利用用户开发的用来进行语音处理、优化、符号计算等的包对它进行扩展。Octave 在某些 GNU/Linux 的发行版中都有,例如 Debian,也可以在使用 Cygwin 的 Windows 和 Mac OS X 上使用。有关 Octave 的更多信息请参阅 参考资料 一节的内容。



相关文章


Linux操作系统分区工具的使用方法
用Linux下的LVS软件实现Linux集群
Linux操作系统中的数据可视化工具
简单高效:用Swatch做Linux日志分析
用Shell编程实现DOS风格Linux命令行
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛