自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你會(huì)用嗎?Linux五大數(shù)據(jù)可視化工具

大數(shù)據(jù)
Linux上用來(lái)實(shí)現(xiàn)數(shù)據(jù)的圖形可視化的應(yīng)用程序有很多,從簡(jiǎn)單的 2-D 繪圖到 3-D 制圖,再到科學(xué)圖形編程和圖形模擬。幸運(yùn)的是,這方面的工具有很多開(kāi)放源碼實(shí)現(xiàn),包括 gnuplot、GNU Octave、Scilab、MayaVi、Maxima 等。每個(gè)工具都有自己的優(yōu)缺點(diǎn),并且都是針對(duì)不同的應(yīng)用程序而設(shè)計(jì)的。對(duì)這些開(kāi)放源碼圖形可視化工具進(jìn)行一下探索,有助于我們更好地決定哪個(gè)工具最適合我們的應(yīng)用程序。

可視化工具的簡(jiǎn)短列表

在本文中,將對(duì)很多流行的 Linux 數(shù)據(jù)可視化工具進(jìn)行一下調(diào)查,并對(duì)其中一些工具進(jìn)行更深入的探討。例如,某個(gè)工具是否為進(jìn)行數(shù)值計(jì)算而提供了一種語(yǔ)言?這個(gè)工具是交互式的還是提供了一種批處理模式來(lái)單獨(dú)進(jìn)行操作?可以使用這個(gè)工具進(jìn)行圖像或數(shù)字信號(hào)處理嗎?這個(gè)工具是否提供了語(yǔ)言綁定來(lái)支持與用戶應(yīng)用程序的集成(例如 Python、Tcl、Java 編程語(yǔ)言等)?另外還將展示一些工具的圖形化處理能力。***,將分析每個(gè)工具的長(zhǎng)處,從而幫助我們確定哪個(gè)工具最適合完成計(jì)算任務(wù)或數(shù)據(jù)可視化。

在本文中所探索的開(kāi)放源碼工具包括(同時(shí)還給出了每個(gè)工具所使用的許可證):

Gnuplot

Gnuplot 是一個(gè)非常好的可視化工具,它從 1986 年開(kāi)始就存在了。如果沒(méi)有 gnuplot 的圖,就很難閱讀論文。盡管 gnuplot 是命令行驅(qū)動(dòng)的,但是它也在不斷發(fā)展,現(xiàn)在也可以支持很多非交互式的應(yīng)用程序了,例如它可以作為一個(gè) GNU Octave 的繪圖引擎使用。

gnuplot 具有很好的可移植性,可以在 UNIX®、Microsoft® Windows®、 Mac OS® X 和很多其他平臺(tái)上運(yùn)行。它可以支持從 postscript 到新近的 PNG 等極為廣泛的輸出格式。

gnuplot 可以以批處理模式進(jìn)行操作,提供了一個(gè)命令腳本來(lái)生成一個(gè)圖形,也是以非交互式模式來(lái)運(yùn)行的,這讓我們可以嘗試一下它的特性來(lái)了解它們繪圖的效果。

在 gnuplot 中有一個(gè)對(duì)應(yīng)于 UNIX 的數(shù)學(xué)庫(kù)的標(biāo)準(zhǔn)的數(shù)學(xué)庫(kù)可以使用。函數(shù)的參數(shù)支持整型、實(shí)型和復(fù)型。可以將數(shù)學(xué)庫(kù)配置成弧度或角度(默認(rèn)為弧度)。

為了進(jìn)行繪圖,gnuplot 可以使用 plot 命令生成 2-D 圖形,或使用 splot 命令生成 3-D 圖形(作為 2-D projection)。使用 plot 命令,gnuplot 可以在直角二維坐標(biāo)系中進(jìn)行操作。splot 命令默認(rèn)使用的是笛卡兒坐標(biāo)系,不過(guò)也可以支持球面或柱面坐標(biāo)系。也可以在圖形中繪制等高線(如下面的圖 1 所示)。有一種新風(fēng)格的繪圖 pm3d 可以支持繪制使用調(diào)色板進(jìn)行映射的 3-D 和 4D 數(shù)據(jù)作為地圖或地表圖來(lái)使用。

下面是一個(gè)簡(jiǎn)單的 gnuplot 例子,它給出了一個(gè)具有等高線和隱線消除的 3-D 圖形。清單 1 給出了所使用的 gnuplot 命令,圖 1 給出了所生成的圖形結(jié)果。

清單 1. 簡(jiǎn)單的 gnuplot 函數(shù)圖

清單 1 充分顯示了 gnuplot 的命令集是多么簡(jiǎn)單。采樣速度和繪圖密度是由 samples 和 isosamples 決定的,標(biāo)題是由 title 參數(shù)為圖形提供的。同時(shí)還啟用了基本的等高線和隱線消除特性,最終的繪圖是利用 splot 命令使用數(shù)學(xué)庫(kù)內(nèi)部的函數(shù)來(lái)創(chuàng)建的。結(jié)果如圖 1 所示。

圖 1. gnuplot 的一個(gè)簡(jiǎn)單繪圖

gnuplot 的一個(gè)簡(jiǎn)單繪圖

除了創(chuàng)建函數(shù)圖之外,gnuplot 還可以很好地對(duì)文件中包含的圖形進(jìn)行繪圖??紤]如清單 2 所示的 x/y 數(shù)據(jù)對(duì)(這個(gè)文件的一個(gè)簡(jiǎn)短版本)。這個(gè)文件中給出的數(shù)據(jù)對(duì)表示一個(gè)兩維空間中的 x 和 y 軸的數(shù)據(jù)。

清單 2. gnuplot 的示例數(shù)據(jù)文件(data.dat)

如果希望在兩維空間中繪制這些數(shù)據(jù),并將每個(gè)數(shù)據(jù)點(diǎn)使用一條線連接起來(lái),就可以使用清單 3 給出的 gnuplot 腳本。

清單 3. 對(duì)清單 2 中的數(shù)據(jù)進(jìn)行繪圖所使用的 Gnuplot 腳本

結(jié)果如圖 2 所示。注意 gnuplot 自動(dòng)給出了軸的刻度,但是如果需要標(biāo)注圖形的位置,就可以對(duì)其進(jìn)行控制。

圖 2. 在 gnuplot 中使用數(shù)據(jù)文件進(jìn)行簡(jiǎn)單的繪圖

在 gnuplot 中使用數(shù)據(jù)文件進(jìn)行簡(jiǎn)單的繪圖

Gnuplot 是一個(gè)很好的可視化工具,它非常出名,是很多 GNU/Linux 發(fā)行版的一部分。然而,如果希望進(jìn)行基本的數(shù)據(jù)可視化和數(shù)值計(jì)算,那么 GNU Octave 可能是我們希望尋找的工具。

#p#

GNU Octave

GNU Octave 是一種高級(jí)語(yǔ)言,主要設(shè)計(jì)用來(lái)進(jìn)行數(shù)值計(jì)算,它是 MathWorks 出品的 Matlab 商業(yè)軟件的一個(gè)強(qiáng)有力的競(jìng)爭(zhēng)產(chǎn)品。除了 gnuplot 所提供的簡(jiǎn)單命令集之外,Octave 還為進(jìn)行數(shù)學(xué)編程提供了一種豐富的語(yǔ)言。我們甚至可以使用 C 或 C++ 語(yǔ)言編寫(xiě)自己的應(yīng)用程序,然后與 Octave 進(jìn)行交互。

Octave 最初是在 1992 年作為化學(xué)反應(yīng)堆設(shè)計(jì)教科書(shū)的一個(gè)輔助軟件而編寫(xiě)的。其作者希望能夠幫助學(xué)生解決反應(yīng)堆的設(shè)計(jì)問(wèn)題,而不用調(diào)試 Fortran 程序。結(jié)果獲得了一種非常有用的語(yǔ)言,并為解決數(shù)值問(wèn)題提供了交互式環(huán)境。

Octave 可以以一種腳本化模式非交互地進(jìn)行操作,或者通過(guò) C 和 C++ 語(yǔ)言綁定進(jìn)行操作。Octave 本身就有一種非常豐富的語(yǔ)言,該語(yǔ)言看起來(lái)與 C 語(yǔ)言非常類(lèi)似,并有一個(gè)很大的數(shù)學(xué)庫(kù),包括信號(hào)和圖像處理、音頻處理以及控制理論所使用的一些特殊函數(shù)。

由于 Octave 使用了 gnuplot 作為其后端實(shí)現(xiàn),因此使用 gnuplot 可以繪制的所有東西都可以使用 Octave 進(jìn)行繪制。Octave 的確有一種更豐富的語(yǔ)言來(lái)進(jìn)行計(jì)算,它有很多明顯的優(yōu)點(diǎn),但是仍然有 gnuplot 的一些限制。

在下面這個(gè) Octave-Forge Web 站點(diǎn)上提供的例子中(SimpleExamples),繪制了一個(gè) Lorentz Strange Attractor。清單 4 給出了在使用 Cygwin 的 Windows 平臺(tái)上 Octave 所使用的交互式對(duì)話框。這個(gè)例子展示了 lsode 的用法,這是一個(gè)常見(jiàn)的微分方程解算器。

清單 4. 使用 Octave 呈現(xiàn) Lorentz Strange Attractor

圖 3 給出的圖是清單 4 中 Octave 代碼的輸出結(jié)果。

圖 3. 使用 Octave 繪制的 Lorentz 圖

使用 Octave 繪制的 Lorentz 圖

GNU Octave(與 gnuplot 一致)可以使用 multiplot 特性在一個(gè)頁(yè)面上呈現(xiàn)多個(gè)圖形。使用這個(gè)特性,就可以定義要?jiǎng)?chuàng)建多少圖形,然后使用subwindow 命令來(lái)定制特定的圖形。在定義好子窗口之后,就可以正常地生成自己的圖形,然后再跳到下一個(gè)子窗口中(如清單 5 所示)。

清單 5. 在 Octave 中生成多個(gè)圖形

所生成的多圖頁(yè)面如圖 4 所示。這是將相關(guān)圖形搜集在一起進(jìn)行比較和對(duì)比的一種很好的特性。

圖 4. 使用 GNU Octave 繪制多圖

使用 GNU Octave 繪制多圖

我們可以認(rèn)為 Octave 是一種使用 gnuplot 作為后臺(tái)實(shí)現(xiàn)來(lái)進(jìn)行可視化的高級(jí)語(yǔ)言。它提供了豐富的數(shù)學(xué)庫(kù),是 Matlab 的一個(gè)很好的免費(fèi)替換產(chǎn)品??梢院苋菀桌糜脩糸_(kāi)發(fā)的用來(lái)進(jìn)行語(yǔ)音處理、優(yōu)化、符號(hào)計(jì)算等的包對(duì)它進(jìn)行擴(kuò)展。Octave 在某些 GNU/Linux 的發(fā)行版中都有,例如 Debian,也可以在使用 Cygwin 的 Windows 和 Mac OS X 上使用。

Scilab

Scilab 在啟用數(shù)值計(jì)算和可視化方面都與 GNU Octave 非常類(lèi)似。 Scilab 是世界上廣泛存在的工程和科學(xué)應(yīng)用程序所使用的一種解釋器和高級(jí)語(yǔ)言。

Scilab 誕生于 1994 年,它是由法國(guó)的 INRIA(Institut national de recherche en informatique et en automatique)和 ENPC(École Nationale des Ponts et Chaussées)設(shè)計(jì)的。從 2003 年開(kāi)始 Scilab 開(kāi)始由 Scilab Consortium 進(jìn)行維護(hù)。

Scilab 包括一個(gè)很大的數(shù)學(xué)函數(shù)庫(kù),可以利用使用 C 和 Fortran 之類(lèi)的高級(jí)語(yǔ)言編寫(xiě)的程序進(jìn)行擴(kuò)充。它還有重載數(shù)據(jù)類(lèi)型和操作的能力。它包括一個(gè)集成的高級(jí)語(yǔ)言,不過(guò)這種語(yǔ)言與 C 語(yǔ)言稍微有些區(qū)別。

Scilab 中有很多工具包提供了 2-D 和 3-D 的圖形動(dòng)畫(huà)、優(yōu)化、統(tǒng)計(jì)、圖標(biāo)和網(wǎng)絡(luò)、信號(hào)處理、混合動(dòng)態(tài)系統(tǒng)模擬和仿真以及其他許多由社區(qū)所貢獻(xiàn)的功能。

在大部分 UNIX 系統(tǒng)上都可以使用 Scilab,在較新的 Windows 操作系統(tǒng)上也可以使用。與 GNU Octave 一樣, Scilab 也有很好的文檔。由于它是一個(gè)歐洲的項(xiàng)目,因此還可以找到很多使用除英語(yǔ)之外的其他語(yǔ)言所編寫(xiě)的文檔和文章。

在啟動(dòng) Scilab 之后,就會(huì)顯示一個(gè)窗口讓我們可以與之進(jìn)行交互(如圖 5 所示)。

圖 5. 與 Scilab 進(jìn)行交互

與 Scilab 進(jìn)行交互

在這個(gè)例子中,先是創(chuàng)建了一個(gè)向量(t),其值的范圍從 0 到 2PI(步進(jìn)大小為 0.2)。然后生成了一個(gè) 3-D 圖形(使用 z=f(x,y), 或者說(shuō)是 xi,yi 點(diǎn)處的一個(gè)表面)。圖 6 給出了所生成的圖形。

圖 6. 圖 5 中的命令所生成的 Scilab 圖

圖 5 中的命令所生成的 Scilab 圖

Scilab 中包括很多庫(kù)和函數(shù),它們可以使用最少的復(fù)雜性來(lái)繪制圖形。下面是一個(gè)生成簡(jiǎn)單三維柱狀圖的例子:

-->hist3d(5*(rand(5,5));

首先,rand(5,5) 會(huì)構(gòu)建一個(gè) 5,5 大小的矩陣,其中包含了一些隨機(jī)值(其***值為 5)。這個(gè)矩陣被傳遞給函數(shù) hist3d。所生成的柱狀圖如圖 7 所示。

圖 7. 生成隨機(jī)的三維柱狀圖

生成隨機(jī)的三維柱狀圖

Scilab 和 Octave 非常類(lèi)似。它們都具有很大的社區(qū)參與基礎(chǔ)。Scilab 是使用 Fortran 77 編寫(xiě)的,而 Octave 則是使用 C++ 編寫(xiě)的。Octave 使用 gnuplot 來(lái)實(shí)現(xiàn)可視化;Scilab 則提供了自己的庫(kù)。如果非常熟悉 Matlab,那么 Octave 就是一個(gè)很好的選擇,因?yàn)樗?shí)現(xiàn)了與 Matlab 的兼容性。Scilab 包括了很多數(shù)學(xué)函數(shù),因此非常適合進(jìn)行信號(hào)處理。如果仍然不確定要使用哪個(gè)工具,可以全部嘗試一下。它們都是很好的工具,可以使用它們來(lái)完成不同的任務(wù)。

#p#

MayaVi

MayaVi 在梵語(yǔ)中的意思是魔術(shù)師,它是一種數(shù)據(jù)可視化工具,綁定了具有強(qiáng)大可視化工具包(VTK)的 Python 來(lái)進(jìn)行圖形化顯示。MayaVi 還提供了一個(gè)使用 Tkinter 模塊開(kāi)發(fā)的圖形用戶界面(GUI)。Tkinter 是一個(gè) Tk 界面,通常都與 Tcl 一起使用。

MayaVi 最初是為 Computational Fluid Dynamics(CFD)作為一個(gè)可視化工具而開(kāi)發(fā)的。當(dāng)人們認(rèn)識(shí)到它在其他領(lǐng)域中的效用之后,它就作為一種通用科學(xué)數(shù)據(jù)可視化工具重新進(jìn)行了設(shè)計(jì)。

MayaVi 背后的魔力來(lái)自于 VTK。VTK 是一個(gè)用來(lái)進(jìn)行數(shù)據(jù)可視化和圖像處理的開(kāi)放源碼系統(tǒng),它在科學(xué)社區(qū)中被廣泛地使用。VTK 通過(guò)為 Tcl/Tk、Java 編程語(yǔ)言以及 Python 加上 C++ 庫(kù)所提供的腳本化接口而封裝了很多功能。VTK 在很多操作系統(tǒng)上都是可移植的,包括 UNIX、Windows 和 MAC OS X。

圍繞 VTK 的 MayaVi 外殼可以作為一個(gè) Python 模塊從其他 Python 程序中導(dǎo)入,并通過(guò) Python 解釋器來(lái)編寫(xiě)腳本。MayaVi 所提供的 tkinter GUI 允許進(jìn)行過(guò)濾器的配置和應(yīng)用,以及在可視化基礎(chǔ)上渲染一些燈光效果。

圖 8 是在 Windows 平臺(tái)上使用 MayaVi 進(jìn)行可視化的一個(gè)例子。

圖 8. 使用 MayaVi/VTK 顯示的 3-D 可視化(心臟 CT 掃描圖)

使用 MayaVi/VTK 顯示的 3-D 可視化(心臟 CT 掃描圖)

MayaVi 是在 Python 腳本語(yǔ)言中擴(kuò)展 VTK 的一個(gè)有趣例子。

#p#

Maxima

Maxima 是一個(gè)符號(hào)和數(shù)值計(jì)算程序,它是 Octave 和 Scilab 的血液。Maxima 最初的開(kāi)發(fā)團(tuán)隊(duì)開(kāi)始于 19 世紀(jì) 70 年代的 MIT(麻聲理工學(xué)院),現(xiàn)在還繼續(xù)在維護(hù)。最初的版本(一個(gè)計(jì)算機(jī)代數(shù)系統(tǒng))名為 DOE Macsyma,它開(kāi)辟了后來(lái)開(kāi)發(fā)的更知名的應(yīng)用程序(例如 Mathematica)的道路。

Maxima 提供了一組所期望的功能集(例如微積分、解析線性系統(tǒng)和非線性等式集)以及符號(hào)計(jì)算能力。在 Maxima 中還可以找到 Lisp 的一些線索(從引用之類(lèi)的函數(shù)、map 和 apply 中)。Maxima 是使用 Lisp 編寫(xiě)的,可以在 Maxima 會(huì)話中執(zhí)行 Lisp 代碼。

Maxima 具有很好的在線幫助系統(tǒng),它是基于超文本的。例如,如果希望了解某個(gè)特定的 Maxima 函數(shù)是如何工作的,那么就可以簡(jiǎn)單地輸入example( desolve ),然后它會(huì)提供很多樣例用法。

Maxima 還有一些有趣的特性,例如規(guī)則和模式。這些規(guī)則和模式都是由用來(lái)簡(jiǎn)化表達(dá)式的程序所使用的。規(guī)則可以用于交換和非交換代數(shù)。

Maxima 與 Octave 和 Scilab 非常類(lèi)似:其中解釋器都可以用來(lái)與用戶進(jìn)行交互,結(jié)果都會(huì)直接在同一個(gè)窗口中提供,或者也可以在另外一個(gè)窗口中進(jìn)行顯示。在圖 9 中,請(qǐng)求繪制一個(gè)簡(jiǎn)單的 3-D 圖形。

圖 9. 與 Maxima 進(jìn)行交互

與 Maxima 進(jìn)行交互

所生成的圖形如圖 10 所示。

圖 10. 圖 9 的命令所生成的 Maxima 圖形

圖 9 的命令所生成的 Maxima 圖形

 

展望

在本文中介紹了幾個(gè)開(kāi)放源碼 GNU/Linux 可視化工具。其他有用的工具還包括 Gri、PGPLOT、SciGraphica、plotutils、NCAR Graphics 和 ImLib3D。這些都是開(kāi)放源碼的,也就是說(shuō)您可以看到它們是如何工作的;如果愿意,也可以對(duì)它們進(jìn)行修改。另外,如果您正在尋找一個(gè)很好的圖形仿真環(huán)境,那就請(qǐng)查看一下與 OpenGL 一起使用的 Open Dynamics Engine(ODE)。

具體的需要決定了哪種工具最適合使用。如果希望使用一個(gè)具有很多可視化算法的強(qiáng)大的可視化系統(tǒng),那么 MayaVi 就是所要尋找的工具。對(duì)于具有可視化功能的數(shù)值計(jì)算來(lái)說(shuō),GNU Octave 和 Scilab 都非常適合。如果需要符號(hào)計(jì)算能力,那么 Maxima 就是一個(gè)非常好的選擇。***(但并非不重要),如果所需要的只是一些基本的繪圖功能,那么 gnuplot 就可以很好地滿足這一需求。

責(zé)任編輯:彭凡 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2020-03-30 14:13:15

可視化工具數(shù)據(jù)可視化

2020-07-16 15:10:46

工具可視化Python

2016-08-21 15:38:31

大數(shù)據(jù)可視化工具

2019-04-23 08:00:25

大數(shù)據(jù)可視化工具數(shù)據(jù)分析

2021-07-21 12:00:41

數(shù)據(jù)可視化人工智能

2018-09-28 17:16:18

數(shù)據(jù)可視化工具發(fā)展趨勢(shì)

2019-09-12 08:42:38

工具可視化BI系統(tǒng)

2022-01-17 11:09:46

數(shù)據(jù)可視化工具開(kāi)發(fā)

2018-05-31 08:25:13

誤區(qū)工具可視化

2019-06-11 09:35:34

可視化工具圖形

2021-12-13 09:00:00

數(shù)據(jù)質(zhì)量工具業(yè)務(wù)

2022-05-16 11:39:46

云架構(gòu)云可視化CROPS

2023-03-06 08:03:10

Python可視化工具

2013-05-06 09:36:45

大數(shù)據(jù)可視化工具

2019-06-27 16:28:39

數(shù)據(jù)可視化JupyterGoogle Char

2017-07-25 13:42:00

大數(shù)據(jù)可視化工具

2019-10-14 15:51:40

可視化技術(shù)微軟數(shù)據(jù)庫(kù)

2017-01-15 10:56:57

大數(shù)據(jù)非結(jié)構(gòu)化過(guò)期

2022-11-15 15:14:05

2022-05-07 09:02:27

數(shù)據(jù)可視化工具庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)