溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux的五大數(shù)據(jù)可視化工具是什么

發(fā)布時(shí)間:2022-01-19 15:00:09 來(lái)源:億速云 閱讀:177 作者:iii 欄目:大數(shù)據(jù)

本文小編為大家詳細(xì)介紹“Linux的五大數(shù)據(jù)可視化工具是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Linux的五大數(shù)據(jù)可視化工具是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

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)單繪圖

Linux的五大數(shù)據(jù)可視化工具是什么

除了創(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)單的繪圖

Linux的五大數(shù)據(jù)可視化工具是什么

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

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ǔ)言編寫自己的應(yīng)用程序,然后與 Octave 進(jìn)行交互。

Octave 最初是在 1992 年作為化學(xué)反應(yīng)堆設(shè)計(jì)教科書(shū)的一個(gè)輔助軟件而編寫的。其作者希望能夠幫助學(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ǔ)言非常類似,并有一個(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 圖

Linux的五大數(shù)據(jù)可視化工具是什么

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 繪制多圖

Linux的五大數(shù)據(jù)可視化工具是什么

我們可以認(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 非常類似。 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 之類的高級(jí)語(yǔ)言編寫的程序進(jìn)行擴(kuò)充。它還有重載數(shù)據(jù)類型和操作的能力。它包括一個(gè)集成的高級(jí)語(yǔ)言,不過(guò)這種語(yǔ)言與 C 語(yǔ)言稍微有些區(qū)別。

Scilab 中有很多工具包提供了 2-D 和 3-D 的圖形動(dòng)畫、優(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ǔ)言所編寫的文檔和文章。

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

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

Linux的五大數(shù)據(jù)可視化工具是什么

在這個(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 圖

Linux的五大數(shù)據(jù)可視化工具是什么

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ī)的三維柱狀圖

Linux的五大數(shù)據(jù)可視化工具是什么

Scilab 和 Octave 非常類似。它們都具有很大的社區(qū)參與基礎(chǔ)。Scilab 是使用 Fortran 77 編寫的,而 Octave 則是使用 C++ 編寫的。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ù)。

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)編寫腳本。MayaVi 所提供的 tkinter GUI 允許進(jìn)行過(guò)濾器的配置和應(yīng)用,以及在可視化基礎(chǔ)上渲染一些燈光效果。

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

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

Linux的五大數(shù)據(jù)可視化工具是什么

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

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 的一些線索(從引用之類的函數(shù)、map 和 apply 中)。Maxima 是使用 Lisp 編寫的,可以在 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)與用戶進(jìn)行交互,結(jié)果都會(huì)直接在同一個(gè)窗口中提供,或者也可以在另外一個(gè)窗口中進(jìn)行顯示。在圖 9 中,請(qǐng)求繪制一個(gè)簡(jiǎn)單的 3-D 圖形。

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

Linux的五大數(shù)據(jù)可視化工具是什么

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

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

Linux的五大數(shù)據(jù)可視化工具是什么

讀到這里,這篇“Linux的五大數(shù)據(jù)可視化工具是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI