有時候在 Linux 底下會用 C、C++ 或 Perl 等程式語言寫一些程式分析資料,但若是需要把資料畫出來看的時候,用這些低階的語言要畫圖實在不方便,而要把資料吐給 GNU Plot 這類的程式又感覺非常大費周章,我實在不想花 30 秒去畫我只看 3 秒鐘的圖。:p

gnu_graph


在 Linux 中有些小程式專門在處理這樣的問題,有一個是最傳統的 GNU graph,他是 plotutils 裡面的一隻程式,可在 command line 下即時繪出 2D 的圖形,也可以用在一般的 shell script 中,支援的輸出格式非常多,除了即時顯示在 X Window 上之外,也可以輸出成 SVG、PNG、GIF、PS 等各種檔案格式。以下是個小範例:

假設有個資料檔 data.txt,其內容如下:

0.0    0.0
1.0    0.2
2.0    0.0
3.0    0.4
4.0    0.2
5.0    0.6

每一行是一筆資料,分別是 x 與 y 的座標,可空白或是 Tab 隔開。在 command line 底下用 GNU graph 畫圖的方法:

graph -TX data.txt

若是要輸出至 PNG 圖檔:

graph -T png data.txt > output.png

或是 PS 圖檔:

graph -T ps data.txt > output.ps

加入圖形 Title 與 XY 座標 Label:

graph -TX -L "Title" -X "X Label" -Y "Y Label" data.txt

若是要把另一隻程式的輸出直接畫出來:

your_program | graph -TX

另外,如果在 MS Windows 中也想用的話,他也有 Windows 的版本,指令用法相同,但是我試的結果他好像沒辦法直接畫在視窗上,要把圖形輸出到檔案再打開來看。:(