我正在處理多個文件,我想從這些文件中繪製熱圖every ::121::600 using 3:25:43
。 有沒有辦法將所有文件合併上飛獲得與像命令的熱圖:我想這來自cat,awk或sed的多個文件的熱圖(bash)
set dgrid3d
splot '< cat data1.csv data2.csv data3.csv data4.csv' every ::121::600 using 3:25:43 w pm3d
但似乎在劇情,只有從data1.csv數據顯示出來。我是否做錯了'
或,
?是awk
還是sed
一個選項?
我知道選項set table
但我寧願一個乾淨的bash命令選項直接進行這個動態。
有沒有很好的資源來查找所有的unix命令與一些gnuplot演示?
感謝迄今爲止的答覆: 因此'
是用於繪圖命令:例如, plot 'data1.csv' using 1:2 w l
將從data1文件中用行打印第2行。這就是爲什麼我習慣在命令中使用'
。我發現這個Site其中哎解釋gunplot一些的bash命令,但我還沒有找到我要找的
感謝您對我的問題很大階躍響應和幫助: 這工作:
plot '< for i in data1.csv data2.csv data3.csv data4.csv; do cat "$i"; echo; done' every ::121::600 using 3:25:43 w pm3d
值得一提的是,我不得不廣告"
就像vagoberto提出
與這工作相同的方式$i
各地:
plot '< awk "FNR==1{print \"\"}1" data1.csv data2.csv data3.csv data4.csv' every ::121::600 using 3:25:43 w pm3d
都在我的Mac OSX終端環境中工作,在Wind 7上安裝了gnuWin32 Package。
我不知道gnuplot的,但你的描述給出了,你可能想[進程替換(https://www.gnu.org印象/software/bash/manual/bash.html#Process-Substitution)。語法是'<(cat data * .csv)'。根據'splot'是否需要在輸入文件中搜索,這可能會給你一個錯誤,因爲進程替換基本上返回一個字符設備。在Zsh中有一個替代語法'=(cat data * .csv)',它爲您提供了一個可查找的文件。 – 4ae1e1
感謝迄今。這是正確的語法:''=(cat data1.csv data2.csv data3.csv data4.csv'every :: 121 :: 600 using 3:25:43 w pm3d'我試過了,但我得到的錯誤data1等不能被發現 –
我不知道你爲什麼使用單引號=()。如果你使用單引號,那麼你不再使用shell的特性,因爲你是從字面上傳遞token的。我知道關於gnuplot,我只是從大多數* nix命令行實用程序的經驗來講。另外,正如我所說的,=()僅適用於zsh。 – 4ae1e1