2015-11-07 69 views
1

我有許多圖表,每個圖表都由單個Gnuplot(5.0)文件和單個數據文件生成。它們都具有共同的顯示特性,如背景,字體等。偶爾會有一個電話來改變所有圖表的外觀 - 例如,將所有圖表的背景顏色從「#000000」更改爲「#333333」 。Gnuplot:從文件加載字符串

爲了繼續這個例子,我想要做的是將顏色值放到一個名爲「backgroundColor.txt」的文本文件中,然後將該值繪製到每個文件中。甚至更好的是將有第一行上的背景色彩偏愛,在第二字體等

例TextFile.txt的:

"#000000" 
"Arial,10" 

gnuplot的僞代碼:

backgroundColor_var = file[1] 
font_var = file[2] 

set terminal pngcairo enhanced background backgroundColor_var font font_var size 600,200 

然後我只需要做出一次改變,而不是進行很多很多的改變。在此先感謝,

戴夫

回答

2

爲什麼不簡單地把整個變量聲明放在配置文件中?

文件textfile.txt

backgroundColor_var = "#FFFFFF" 
font_var = "Arial,10" 

然後用

load 'textfile.txt' 
set terminal ... 

該解決方案適用於任何操作系統,你可以把裏面的一切,線條樣式定義,終端設置,字體等使用

+0

我看着'加載'並因某種原因被解僱。可能是因爲我認爲它必須比這更復雜。謝謝Christoph,這是一個很好的解決方案。 – DaveL17

1

我會使用system命令。在Linux中,下面應該工作:

config = "config.cfg" 
backgroundColor_var = system(sprintf("sed -n '1p' %s", config)) 
font_var = system(sprintf("sed -n '2p' %s", config)) 

sed -n 'Np'命令選擇的配置文件的第N行。 在Windows中,您需要安裝gnuwin32才能使用此答案。

+0

感謝您的指針。您的建議是_VERY_關閉。當我打印變量值時,我得到了我正在查找的值:'「#FFFFFF」';但是,當我將變量添加到'set terminal'命令時,出現以下錯誤:'無法識別的顏色名稱,而不是字符串「#AARRGGBB」或「0xAARRGGBB」'。 – DaveL17

+0

我想通了(錯誤是我的)。我錯誤地在參數文件裏面放了雙引號 - 有效地給了我''「#FFFFFF」「'它在哪裏重要。一旦我刪除這些,它完美運作。感謝vagoberto提供完美的解決方案。 – DaveL17

+0

嗯,這不完美:)克里斯托弗的答案更容易。我的答案適用於更復雜的任務(例如,讀取數據文件的標題) – vagoberto