愤怒的大鸟 发表于 2015-1-14 20:38:24

CentOS教程之Linux下的五年夜数据可视化工具

欢迎大家来到仓酷云论坛!Gnuplot
  在本文中,将对良多盛行的Linux数据可视化工具举行一下查询拜访,并对个中一些工具举行更深切的切磋。比方,某个工具是不是为举行数值盘算而供应了一种言语?这个工具是交互式的仍是供应了一种批处置形式来独自举行操纵?可使用这个工具举行图象或数字旌旗灯号处置吗?这个工具是不是供应了言语绑定来撑持与用户使用步伐的集成(比方Python、Tcl、Java编程言语等)?别的还将展现一些工具的图形化处置才能。最初,将剖析每一个工具的优点,从而匡助我们断定哪一个工具最合适完成盘算义务或数据可视化。
  在本文中所探究的开放源码工具包含(同时还给出了每一个工具所利用的允许证):
Gnuplot
  Gnuplot是一个十分好的可视化工具,它从1986年入手下手就存在了。假如没有gnuplot的图,就很难浏览论文。只管gnuplot是下令行驱动的,可是它也在不休开展,如今也能够撑持良多非交互式的使用步伐了,比方它能够作为一个GNUOctave的画图引擎利用。
  gnuplot具有很好的可移植性,能够在UNIX®、Microsoft®Windows®、MacOS®X和良多其他平台上运转。它能够撑持从postscript到早先的PNG等极其普遍的输入格局。
  gnuplot能够以批处置形式举行操纵,供应了一个下令剧本来天生一个图形,也是以非交互式形式来运转的,这让我们能够实验一下它的特征来懂得它们画图的效果。
  在gnuplot中有一个对应于UNIX的数学库的尺度的数学库可使用。函数的参数撑持整型、实型和复型。能够将数学库设置成弧度或角度(默许为弧度)。
  为了举行画图,gnuplot可使用plot下令天生2-D图形,或利用splot下令天生3-D图形(作为2-Dprojection)。利用plot下令,gnuplot能够在直角二维坐标系中举行操纵。splot下令默许利用的是笛卡儿坐标系,不外也能够撑持球面或柱面坐标系。也能够在图形中绘制等高线(以下面的所示)。有一种新作风的画图pm3d能够撑持绘制利用调色板举行映照的3-D和4D数据作为舆图或地表图来利用。
  上面是一个复杂的gnuplot例子,它给出了一个具有等高线和隐线打消的3-D图形。清单1给出了所利用的gnuplot下令,给出了所天生的图形了局。
  清单1.复杂的gnuplot函数图
  清单1充实显现了gnuplot的下令集是何等复杂。采样速率和画图密度是由samples和isosamples决意的,题目是由title参数为图形供应的。同时还启用了基础的等高线和隐线打消特征,终极的画图是使用splot下令利用数学库外部的函数来创立的。了局如所示。
  .gnuplot的一个复杂画图


  除创立函数图以外,gnuplot还能够很好地对文件中包括的图形举行画图。思索如清单2所示的x/y数据对(这个文件的一个冗长版本)。这个文件中给出的数据对暗示一个两维空间中的x和y轴的数据。
  清单2.gnuplot的示例数据文件(data.dat)
  假如但愿在两维空间中绘制这些数据,并将每一个数据点利用一条线毗连起来,就能够利用清单3给出的gnuplot剧本。
  清单3.对清单2中的数据举行画图所利用的Gnuplot剧本
  了局如所示。注重gnuplot主动给出了轴的刻度,可是假如必要标注图形的地位,就能够对其举行把持。
  .在gnuplot中利用数据文件举行复杂的画图


  Gnuplot是一个很好的可视化工具,它十分着名,是良多GNU/Linux刊行版的一局部。但是,假如但愿举行基础的数据可视化和数值盘算,那末GNUOctave多是我们但愿寻觅的工具。
GNUOctave


GNUOctave
  GNUOctave是一种初级言语,次要计划用来举行数值盘算,它是MathWorks出品的Matlab贸易软件的一个强无力的合作产物。除gnuplot所供应的复杂下令集以外,Octave还为举行数学编程供应了一种丰厚的言语。我们乃至可使用C或C++言语编写本人的使用步伐,然后与Octave举行交互。
  Octave最后是在1992年作为化学反响堆计划教科书的一个帮助软件而编写的。其作者但愿可以匡助先生办理反响堆的计划成绩,而不必调试Fortran步伐。了局取得了一种十分有效的言语,并为办理数值成绩供应了交互式情况。
  Octave能够以一种剧本化形式非交互地举行操纵,大概经由过程C和C++言语绑定举行操纵。Octave自己就有一种十分丰厚的言语,该言语看起来与C言语十分相似,并有一个很年夜的数学库,包含旌旗灯号和图象处置、音频处置和把持实际所利用的一些特别函数。
  因为Octave利用了gnuplot作为厥后端完成,因而利用gnuplot能够绘制的一切器材都可使用Octave举行绘制。Octave切实其实有一种更丰厚的言语来举行盘算,它有良多分明的长处,可是仍旧有gnuplot的一些限定。
  鄙人面这个Octave-ForgeWeb站点上供应的例子中(SimpleExamples),绘制了一个LorentzStrangeAttractor。清单4给出了在利用Cygwin的Windows平台上Octave所利用的交互式对话框。这个例子展现了lsode的用法,这是一个罕见的微分方程解算器。
  清单4.利用Octave出现LorentzStrangeAttractor
  给出的图是清单4中Octave代码的输入了局。
  .利用Octave绘制的Lorentz图


  GNUOctave(与gnuplot分歧)可使用multiplot特征在一个页面上出现多个图形。利用这个特征,就能够界说要创立几图形,然后利用subwindow下令来定制特定的图形。在界说好子窗口以后,就能够一般地天生本人的图形,然后再跳到下一个子窗口中(如清单5所示)。
  清单5.在Octave中天生多个图形
  所天生的多图页面如所示。这是将相干图形汇集在一同举行对照和对照的一种很好的特征。
  .利用GNUOctave绘制多图


  我们能够以为Octave是一种利用gnuplot作为背景完成来举行可视化的初级言语。它供应了丰厚的数学库,是Matlab的一个很好的收费交换产物。能够很简单使用用户开辟的用来举行语音处置、优化、标记盘算等的包对它举行扩大。Octave在某些GNU/Linux的刊行版中都有,比方Debian,也能够在利用Cygwin的Windows和MacOSX上利用。
3Scilab


Scilab
  Scilab在启用数值盘算和可视化方面都与GNUOctave十分相似。Scilab是天下上普遍存在的工程和迷信使用步伐所利用的一种注释器和初级言语。
  Scilab出生于1994年,它是由法国的INRIA(Institutnationalderechercheeninformatiqueetenautomatique)和ENPC(écoleNationaledesPontsetChaussées)计划的。从2003年入手下手Scilab入手下手由ScilabConsortium举行保护。
  Scilab包含一个很年夜的数学函数库,能够使用利用C和Fortran之类的初级言语编写的步伐举行扩大。它另有重载数据范例和操纵的才能。它包含一个集成的初级言语,不外这类言语与C言语略微有些区分。
  Scilab中有良多工具包供应了2-D和3-D的图形动画、优化、统计、图标和收集、旌旗灯号处置、夹杂静态体系摹拟和仿真和其他很多由社区所奉献的功效。
  在年夜局部UNIX体系上都可使用Scilab,在较新的Windows操纵体系上也能够利用。与GNUOctave一样,Scilab也有很好的文档。因为它是一个欧洲的项目,因而还能够找到良多利用除英语以外的其他言语所编写的文档和文章。
  在启动Scilab以后,就会显现一个窗口让我们能够与之举行交互(如所示)。
  .与Scilab举行交互


  在这个例子中,先是创立了一个向量(t),其值的局限从0到2PI(步进巨细为0.2)。然后天生了一个3-D图形(利用z=f(x,y),大概说是xi,yi点处的一个外表)。给出了所天生的图形。
  .中的下令所天生的Scilab图


  Scilab中包含良多库和函数,它们可使用起码的庞大性来绘制图形。上面是一个天生复杂三维柱状图的例子:
  -->hist3d(5*(rand(5,5));
  起首,rand(5,5)会构建一个5,5巨细的矩阵,个中包括了一些随机值(其最年夜值为5)。这个矩阵被传送给函数hist3d。所天生的柱状图如所示。
.天生随机的三维柱状图


  Scilab和Octave十分相似。它们都具有很年夜的社区介入基本。Scilab是利用Fortran77编写的,而Octave则是利用C++编写的。Octave利用gnuplot来完成可视化;Scilab则供应了本人的库。假如十分熟习Matlab,那末Octave就是一个很好的选择,由于它勉力完成了与Matlab的兼容性。Scilab包含了良多数学函数,因而十分合适举行旌旗灯号处置。假如仍旧不断定要利用哪一个工具,能够全体实验一下。它们都是很好的工具,可使用它们来完成分歧的义务。
4MayaVi


MayaVi
  MayaVi在梵语中的意义是把戏师,它是一种数据可视化工具,绑定了具有壮大可视化工具包(VTK)的Python来举行图形化显现。MayaVi还供应了一个利用Tkinter模块开辟的图形用户界面(GUI)。Tkinter是一个Tk界面,一般都与Tcl一同利用。
  MayaVi最后是为ComputationalFluidDynamics(CFD)作为一个可视化工具而开辟的。当人们熟悉到它在其他范畴中的功效以后,它就作为一种通用迷信数据可视化工具从头举行了计划。
  MayaVi面前的魔力来自于VTK。VTK是一个用来举行数据可视化和图象处置的开放源码体系,它在迷信社区中被普遍地利用。VTK经由过程为Tcl/Tk、Java编程言语和Python加上C++库所供应的剧本化接口而封装了良多功效。VTK在良多操纵体系上都是可移植的,包含UNIX、Windows和MACOSX。
  环绕VTK的MayaVi外壳能够作为一个Python模块从其他Python步伐中导进,并经由过程Python注释器来编写剧本。MayaVi所供应的tkinterGUI同意举行过滤器的设置和使用,和在可视化基本上衬着一些灯光效果。
  是在Windows平台上利用MayaVi举行可视化的一个例子。
  .利用MayaVi/VTK显现的3-D可视化(心脏CT扫描图)


  MayaVi是在Python剧本言语中扩大VTK的一个风趣例子。
5Maxima


Maxima
  Maxima是一个标记和数值盘算步伐,它是Octave和Scilab的血液。Maxima最后的开辟团队入手下手于19世纪70年月的MIT(麻声理工学院),如今还持续在保护。最后的版本(一个盘算机代数体系)名为DOEMacsyma,它启示了厥后开辟的更出名的使用步伐(比方Mathematica)的路途。
  Maxima供应了一组所希冀的功效集(比方微积分、剖析线性体系和非线性等式集)和标记盘算才能。在Maxima中还能够找到Lisp的一些线索(从援用之类的函数、map和apply中)。Maxima是利用Lisp编写的,能够在Maxima会话中实行Lisp代码。
  Maxima具有很好的在线匡助体系,它是基于超文本的。比方,假如但愿懂得某个特定的Maxima函数是怎样事情的,那末就能够复杂地输出example(desolve),然后它会供应良多样例用法。
  Maxima另有一些风趣的特征,比方划定规矩和形式。这些划定规矩和形式都是由用来简化表达式的步伐所利用的。划定规矩能够用于互换和非互换代数。
  Maxima与Octave和Scilab十分相似:个中注释器都能够用来与用户举行交互,了局城市间接在统一个窗口中供应,大概也能够在别的一个窗口中举行显现。在中,哀求绘制一个复杂的3-D图形。
  .与Maxima举行交互



  所天生的图形如0所示。
  0.的下令所天生的Maxima图形


瞻望
  在本文中先容了几个开放源码GNU/Linux可视化工具。其他有效的工具还包含Gri、PGPLOT、SciGraphica、plotutils、NCARGraphics和ImLib3D。这些都是开放源码的,也就是说您能够看到它们是怎样事情的;假如乐意,也能够对它们举行修正。别的,假如您正在寻觅一个很好的图形仿真情况,那就请检察一下与OpenGL一同利用的OpenDynamicsEngine(ODE)。
  详细的必要决意了哪一种工具最合适利用。假如但愿利用一个具有良多可视化算法的壮大的可视化体系,那末MayaVi就是所要寻觅的工具。关于具有可视化功效的数值盘算来讲,GNUOctave和Scilab都十分合适。假如必要标记盘算才能,那末Maxima就是一个十分好的选择。最初(但并不是不主要),假如所必要的只是一些基础的画图功效,那末gnuplot就能够很好地满意这一需求。


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!

简单生活 发表于 2015-1-16 21:11:39

CentOS教程之Linux下的五年夜数据可视化工具

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

山那边是海 发表于 2015-1-20 05:40:28

甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。

分手快乐 发表于 2015-1-28 19:40:14

熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:

admin 发表于 2015-2-5 23:29:30

linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!

老尸 发表于 2015-2-14 05:31:04

期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?

海妖 发表于 2015-3-4 05:16:37

然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。

若天明 发表于 2015-3-11 17:30:51

熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。

透明 发表于 2015-3-19 06:24:40

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

活着的死人 发表于 2015-3-27 11:05:52

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
页: [1]
查看完整版本: CentOS教程之Linux下的五年夜数据可视化东西