偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

可視化工具的簡短列表

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

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

Gnuplot

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

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

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

在 gnuplot 中有一個對應(yīng)于 UNIX 的數(shù)學庫的標準的數(shù)學庫可以使用。函數(shù)的參數(shù)支持整型、實型和復(fù)型??梢詫?shù)學庫配置成弧度或角度(默認為弧度)。

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

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

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

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

圖 1. gnuplot 的一個簡單繪圖

gnuplot 的一個簡單繪圖

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

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

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

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

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

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

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

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

#p#

GNU Octave

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

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

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

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

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

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

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

圖 3. 使用 Octave 繪制的 Lorentz 圖

使用 Octave 繪制的 Lorentz 圖

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

清單 5. 在 Octave 中生成多個圖形

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

圖 4. 使用 GNU Octave 繪制多圖

使用 GNU Octave 繪制多圖

我們可以認為 Octave 是一種使用 gnuplot 作為后臺實現(xiàn)來進行可視化的高級語言。它提供了豐富的數(shù)學庫,是 Matlab 的一個很好的免費替換產(chǎn)品。可以很容易利用用戶開發(fā)的用來進行語音處理、優(yōu)化、符號計算等的包對它進行擴展。Octave 在某些 GNU/Linux 的發(fā)行版中都有,例如 Debian,也可以在使用 Cygwin 的 Windows 和 Mac OS X 上使用。

Scilab

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

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

Scilab 包括一個很大的數(shù)學函數(shù)庫,可以利用使用 C 和 Fortran 之類的高級語言編寫的程序進行擴充。它還有重載數(shù)據(jù)類型和操作的能力。它包括一個集成的高級語言,不過這種語言與 C 語言稍微有些區(qū)別。

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

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

在啟動 Scilab 之后,就會顯示一個窗口讓我們可以與之進行交互(如圖 5 所示)。

圖 5. 與 Scilab 進行交互

與 Scilab 進行交互

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

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

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

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

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

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

圖 7. 生成隨機的三維柱狀圖

生成隨機的三維柱狀圖

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

#p#

MayaVi

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

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

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

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

圖 8 是在 Windows 平臺上使用 MayaVi 進行可視化的一個例子。

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

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

MayaVi 是在 Python 腳本語言中擴展 VTK 的一個有趣例子。

#p#

Maxima

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

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

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

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

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

圖 9. 與 Maxima 進行交互

與 Maxima 進行交互

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

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

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

 

展望

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

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

責任編輯:彭凡 來源: 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ā)展趨勢

2021-12-13 09:00:00

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

2019-09-12 08:42:38

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

2017-01-15 10:56:57

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

2022-05-16 11:39:46

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

2022-01-17 11:09:46

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

2018-05-31 08:25:13

誤區(qū)工具可視化

2019-06-11 09:35:34

可視化工具圖形

2013-01-10 10:30:32

大數(shù)據(jù)預(yù)測Hadoop

2023-03-06 08:03:10

Python可視化工具

2019-06-27 16:28:39

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

2013-05-06 09:36:45

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

2012-08-13 14:27:31

大數(shù)據(jù)

2021-09-03 08:00:00

開源工具游戲

2019-10-14 15:51:40

可視化技術(shù)微軟數(shù)據(jù)庫
點贊
收藏

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