linux数据库可视化工具
在本文中,我对许多流行的Linux数据可视化工具进行了调查,并对其中的其他功能进行了深入分析。 例如,该工具是否提供用于数值计算的语言? 该工具是交互式的还是仅在批处理模式下运行? 可以使用该工具进行图像或数字信号处理吗? 该工具是否提供语言绑定以支持集成到用户应用程序中(例如Python,Tcl,Java编程语言等)? 我还将演示工具的图形功能。 最后,我将确定每种工具的优势,以帮助您确定最适合您的计算任务或数据可视化的工具。
我在本文中探讨的开源工具是(及其相关许可证):
Gnuplot是一种出色的可视化工具,自1986年以来一直存在。如果不碰到gnuplot图,就很难阅读论文或学位论文。 尽管gnuplot是命令行驱动的,但它从刚开始就发展为支持许多非交互式应用程序,包括用作GNU Octave的绘图引擎。
Gnuplot是便携式的,可在UNIX®,Microsoft®Windows®,MacOS®X和许多其他平台上运行。 它支持多种输出格式,从后记到最新的PNG。
Gnuplot可以在批处理模式下运行,提供用于生成绘图的命令脚本,并且还可以在交互模式下运行,这使您可以尝试其功能,以查看它们对绘图的影响。
gnuplot还提供了与UNIX数学库相对应的标准数学库。 函数的参数支持整数,实数和复数。 您可以为弧度或度数配置数学库(默认为弧度)。
对于绘图,gnuplot可以使用plot
命令生成2-D图,并使用splot
命令生成3-D图(作为2-D投影)。 使用plot
命令,gnuplot可以在直角坐标或极坐标中运行。 默认情况下, splot
命令为笛卡尔坐标,但也可以支持球面和圆柱坐标。 您还可以将轮廓应用于图(如下面的图1所示)。 绘图的一种新样式pm3d
支持将绘图板映射的3D和4D数据作为地图和曲面使用。
这是一个简短的gnuplot示例,说明了具有轮廓和隐藏线去除的3-D函数绘制。 清单1显示了所使用的gnuplot命令,图1显示了图形结果。
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命令集的简单性。 样区的采样率和密度由样本和同等样本确定,并为带有标题参数的图形提供标题。 基本轮廓与隐藏线删除一起启用,并且正弦曲线图是使用内部可用的数学库函数通过splot
命令创建的。 结果是图1。
除了创建函数图之外,gnuplot还非常适合绘制文件中包含的数据。 考虑清单2中所示的x / y数据对(文件的缩写版本)。 文件中显示的数据对表示二维空间中的x和y坐标。
56 48
59 29
85 20
93 16
...
56 48
如果要在二维空间中绘制此数据,并用线连接每个数据点,则可以使用清单3中所示的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会自动缩放轴,但是如果需要放置图,则可以控制它。
Gnuplot是一个出色的可视化工具,众所周知,可以作为许多GNU / Linux发行版的标准部分使用。 但是,如果您需要基本的数据可视化和数值计算,那么GNU Octave可能就是您想要的。
GNU Octave是一种高级语言,主要用于数值计算,并且是The MathWorks商业Matlab应用程序的引人注目的替代品。 除了gnuplot提供的简单命令集外,Octave还提供了一种用于数学编程的丰富语言。 您甚至可以用C或C ++编写应用程序,然后连接到Octave。
Octave最初于1992年左右编写,是化学React器设计教科书的配套软件。 作者想帮助学生解决React堆设计问题,而不是调试Fortran程序。 结果是解决数值问题的有用语言和交互式环境。
八度可以以脚本模式,交互地或通过C和C ++语言绑定进行操作。 Octave本身具有类似于C的丰富语言,并具有非常大的数学库,包括用于信号和图像处理,音频处理和控制理论的专用功能。
因为Octave使用gnuplot作为其后端,所以您可以使用gnuplot进行绘制的任何内容都可以使用Octave进行绘制。 Octave确实具有更丰富的计算语言,它具有明显的优势,但是您仍然会受到gnuplot的限制。
在以下示例中,从Octave-Forge网站(SimpleExamples),我绘制了Lorentz奇怪吸引子。 清单4显示了在Windows平台上使用Cygwin的Octave的交互式对话框。 本示例演示了普通微分方程求解器lsode的用法。
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代码的输出。
GNU Octave(与gnuplot配合使用)可以通过multiplot
功能在单个页面上发出多个图。 使用此功能,您可以定义要创建的绘图数量,然后使用subwindow
命令定义特定的绘图。 定义子窗口后,通常会生成图,然后转到下一个子窗口(如清单5所示)。
>> 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所示。这是一个很好的功能,可将相关图收集在一起以进行比较或对比。
您可以将Octave视为高级语言,并将gnuplot作为可视化的后端。 它提供了丰富的数学库,是Matlab的免费替代品。 它也是可扩展的,具有由用户开发的用于语音处理,优化,符号计算等的软件包。 Octave在某些GNU / Linux发行版中(例如Debian),也可以在带有Cygwin和Mac OS X的Windows上使用。有关Octave的更多信息,请参阅“ 相关主题”部分。
Scilab与GNU Octave相似,因为它可以进行数值计算和可视化。 Scilab是一种在世界范围内使用的工程技术和科学应用程序的解释器和高级语言。
Scilab起源于1994年,由法国国家信息和自动化研究所(INRIA)和法国国家巴黎蓬特和歌剧院(ENPC)的研究人员开发。 自2003年以来,Scilab由Scilab联盟进行维护。
Scilab包括一个大型的数学函数库,并且可以扩展为使用高级语言(例如C和Fortran)编写的程序。 它还包括使数据类型和操作过载的功能。 它包含集成的高级语言,但与C有所不同。
可用于Scilab的许多工具箱提供2D和3D图形和动画,优化,统计,图形和网络,信号处理,混合动态系统建模器和模拟器以及许多其他社区的帮助。
您可以在大多数UNIX系统以及更新的Windows操作系统上使用Scilab。 像GNU Octave一样,Scilab有据可查。 因为它是欧洲项目,所以您还可以找到多种英语以外的其他语言的文档和文章。
启动Scilab后,将显示一个窗口,使您可以与解释器进行交互(请参见图5)。
在此示例中,我创建了一个向量(t),其值的范围为0到2PI(步长为0.2)。 然后,我生成一个3-D图(使用z = f(x,y)或点xi,yi处的表面)。 图6显示了结果图。
Scilab包含大量库和函数,可以以最小的复杂度生成图。 以生成简单的三维直方图为例:
-->hist3d(5*(rand(5,5));
首先, rand(5,5)
构建一个大小为5.5的矩阵,其中包含随机值(我将其缩放为最大值5)。 该矩阵传递给函数hist3d
。 结果是如图7所示的直方图。
Scilab和Octave相似。 两者都有大量的社区参与基础。 Scilab用Fortran 77编写,而Octave用C ++编写。 Octave使用gnuplot进行可视化; Scilab提供了自己的工具。 如果您熟悉Matlab,则Octave是一个不错的选择,因为它会争取兼容性。 Scilab具有许多数学功能,非常适合信号处理。 如果您仍然不确定要使用哪个,请尝试两种方法。 它们都是很好的工具,您可能会发现自己分别使用它们来完成不同的任务。
MayaVi是梵语中的魔术师,它是一种数据可视化工具,它将Python与功能强大的Visualization Toolkit(VTK)绑定在一起以进行图形显示。 MayaVi还提供了使用Tkinter模块开发的图形用户界面(GUI)。 Tkinter是一个Tk接口,最常与Tcl耦合。
MayaVi最初是作为计算流体动力学(CFD)的可视化工具开发的。 意识到其在其他领域的用途后,将其重新设计为通用的科学数据可视化工具。
VTK是MayaVi背后的力量。 VTK是用于数据可视化和图像处理的开源系统,已在科学界广泛使用。 除了C ++库外,VTK还具有用于Tcl / Tk,Java编程语言和Python的脚本接口,提供了惊人的功能。 VTK可移植到许多操作系统,包括UNIX,Windows和MAC OSX。
可以将VTK周围的MayaVi shell作为Python模块从其他Python程序中导入,并通过Python解释器编写脚本。 MayaVi提供的tkinter GUI允许配置和应用滤镜,以及操纵可视化效果。
图8是在Windows平台上使用MayaVi的示例可视化。
MayaVi是在Python脚本语言中扩展VTK的有趣示例。
Maxima是Octave和Scilab中完整的符号和数值计算程序。 Maxima的最初开发始于1960年代后期,位于麻省理工学院(MIT),并一直保持至今。 原始版本(计算机代数系统)称为DOE Macsyma,它为后来开发更常见的应用程序(例如Mathematica)开辟了道路。
Maxima提供了您期望的一组不错的功能(例如微分和积分计算,求解线性系统和非线性方程组)以及符号计算能力。 您可以使用传统的循环和条件在Maxima中编写程序。 您还会在Maxima中发现Lisp的提示(从quoting, map
和apply
函数中)。 Maxima用Lisp编写,您可以在Maxima会话中执行Lisp代码。
Maxima有一个很好的基于超文本的联机帮助系统。 例如,如果您想了解特定的Maxima函数的工作方式,则只需键入example( desolve )
,它就会提供许多示例用法。
Maxima还具有一些有趣的功能,例如规则和模式。 简化程序使用这些规则和模式来简化表达式。 规则也可以用于可交换代数和非可交换代数。
Maxima与Octave和Scilab一样,都可以使用解释器与用户进行交互,并且结果直接在同一窗口中提供或在另一个窗口中弹出。 在图9中,我要求绘制一个简单的3-D图。
结果图如图10所示。
如果不对Open Data Explorer(OpenDX)进行简短介绍,就无法完整地看到可视化工具。 OpenDX是IBM强大的可视化数据浏览器的开源版本。 该工具于1991年作为Visualization Data Explorer首次发布,现在可以用作数据可视化的开源以及为数据可视化构建灵活的应用程序。
OpenDX具有许多独特的功能,但是其架构值得一提。 OpenDX使用客户端/服务器模型,其中客户端和服务器应用程序可以驻留在单独的主机上。 这使服务器可以在专为高功率数字运算设计的系统(例如共享内存多处理器)上运行,而客户端分别在为图形渲染设计的较小主机上运行。 OpenDX甚至允许在多个要同时处理的服务器(甚至是异构服务器)之间分配问题。
OpenDX支持可视数据流编程模型,该模型允许以图形方式定义可视化程序(请参见图11)。 每个选项卡都定义一个“页面”(类似于功能)。 数据通过所示的转换进行处理,例如,中间的“收集”模块将输入对象收集到一个组中,然后将其传递(在这种情况下,传递到“图像”模块,该模块显示图像和“ AutoCamera”指定如何查看图像的模块)。
OpenDX甚至包括一个模块构建器,可以帮助您构建自定义模块。
图12显示了从OpenDX生成的示例图像(该图像取自Dalhousie大学的OpenDX的物理海洋学教程)。 该数据表示陆地拓扑数据,也表示水深(测深)。
到目前为止,OpenDX是我在此探讨的最灵活,功能最强大的数据可视化工具,但它也是最复杂的。 幸运的是,已经编写了许多教程(和书籍)来帮助您快速入门,并在“ 相关主题”部分中提供了这些教程。
在本文中,我刚刚介绍了一些开源的GNU / Linux可视化工具。 其他有用的工具包括Gri,PGPLOT,SciGraphica,plotutils,NCAR Graphics和ImLib3D。 全部都是开源的,您可以查看它们的工作方式,并根据需要进行修改。 另外,如果您正在寻找出色的图形仿真环境,请查看结合了OpenGL的Open Dynamics Engine(ODE)。
您的需求决定哪种工具最适合您。 如果您需要一个功能强大的可视化系统以及多种可视化算法,那么MayaVi将是您的理想之选。 对于可视化的数值计算,GNU Octave和Scilab非常适合。 如果需要符号计算功能,Maxima是一个有用的选择。 最后但并非最不重要的一点是,如果您需要基本绘图,则gnuplot可以很好地工作。
翻译自: https://www.ibm.com/developerworks/opensource/library/l-datavistools/index.html
linux数据库可视化工具