送過來給gnuplot的程序保存命令我是新來GNUPLOT。我正在使用Unix。使用Gnuplot-PY包
我看到的命令/錯誤和他們的終端輸出,但我想他們也保存在一個文件存儲的目的。
有在gnuplot的保存命令,但它不僅節省了模塊和最終設置最後給出的情節或splot命令。
想我繪製與設置「A」,做一些計算後的線路我去重新繪製另一條線與設置「B」
gnuplot.save()命令只保存最後命令和最新設置。我怎樣才能保存所有發出的命令?
請幫忙...
送過來給gnuplot的程序保存命令我是新來GNUPLOT。我正在使用Unix。使用Gnuplot-PY包
我看到的命令/錯誤和他們的終端輸出,但我想他們也保存在一個文件存儲的目的。
有在gnuplot的保存命令,但它不僅節省了模塊和最終設置最後給出的情節或splot命令。
想我繪製與設置「A」,做一些計算後的線路我去重新繪製另一條線與設置「B」
gnuplot.save()命令只保存最後命令和最新設置。我怎樣才能保存所有發出的命令?
請幫忙...
非python的回答是使用`script'命令。
我不是非常熟悉的gnuplot-PY - 但如果它寫入命令到終端,因爲它執行它們,你可以使用shell重定向:
python myPythonScriptWithGnuplot.py > commandfile.gp #redirect stdout
python myPythonScriptWithGnuplot.py 2> commandfile.gp #redirect stderr
當然,此次榮獲」牛逼的幫助,如果你在寫其他的東西,從蟒蛇終端...
但是請注意,gnuplot的-PY將通過臨時的FIFO GNUPLOT數據(我想反正)。所以,如果用戶要打印的數據(如列表,numpy的陣列,等等......像"sin(x)"
不是功能),當您嘗試繪圖數據時,FIFO將被從系統中清除,你的繪圖命令就會失敗抱怨它找不到數據文件。
編輯
後(快速)查看源代碼,看來你有幾種選擇。您的第一個選項:將debug=1
傳遞給構造函數(您可能已經這樣做了)。這將導致命令被寫入標準錯誤。用一點(或很多)shell魔法,你可以分離出不同的輸出流。這裏有一個配方,可以將stderr從一個命令放入一個文件中,同時仍然在終端上輸出bash中的輸出(我使用bash 4.1.5 - 但我確定這已經存在了一段時間):
((command 3>&1 1>&2 2>&3) | tee command_stderr.log) 3>&1 1>&2 2>&3
#swap stderr/out
#tee puts data in output file and to terminal
#swap stderr/stdout again.
(我喜歡看到一個更清潔的方式,如果有人知道它這樣做的輸出流交換...)
或者,你可以將文件名傳遞給Gnuplot
構造。這會將命令寫入該文件。據我所知,沒有辦法允許你寫文件和gnuplot管道的命令。但是,您始終可以啓動多個Gnuplot
實例,並通過主實例將命令寫入文件,然後每當寫入繪圖命令時,都會將第二個實例告訴load "filename"
。當然,如果你使用這種方法,你應該指定該數據應該是inline
d。
第三個選擇是放棄gnuplot-py,轉而使用pyGnuplot,因爲我仍然在積極開發那個 - 然後如果某件事不起作用,或者您想添加一個功能,您可以讓我知道;)
你可以使用matplotlib完全在python中繪製你的圖。 –