2013-05-01 44 views
2
date daily weekly monthly 
1  11    88 
2  12 
3  45 44 
4  54 
5  45 
6  45 66 
7  77 
8  78 
9  71 99  88 

空數據點在每週專欄,該地塊從每月專欄ploting值。 每月柱狀圖和每日柱狀圖都很完美。 建議的東西比設置數據文件丟失「'和設置數據文件分隔符」\ t「列空數據點

回答

4

唉,Gnuplot不支持基於字段的數據文件,唯一的當前解決方案是預處理文件。 awk是非常適合的任務(注意:如果該文件包含硬標籤,你需要調整FIELDWIDTHS):

awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile 

這將替換在列3和4的問號,這意味着未定義的Gnuplot空字段(/^ *$/) 。 awk腳本末尾的1調用默認規則:{ print $0 }

如果您發送awk的輸出outfile`,比如,你可以現在繪製這樣的文件:

set key autotitle columnhead out 
set style data linespoint 
plot 'outfile' using 1:2, '' using 1:3, '' using 1:4 

Plot of all columns

+0

不錯的答案我不知道如果需要的話,您可以使用文件的列頭來製作自動標籤標題 – psibar 2013-05-01 15:37:15

+0

只繪製每週專欄的日期,你能否在gnuplot腳本文件中提出任何解決方案。 – 2013-05-02 04:57:56

+0

@ deepak.yadav:使用相同的答案,將繪圖線更改爲:'plot'outfile'using 1:3'。 – Thor 2013-05-02 06:04:52

1

如果有人運行到這一點,我建議更新到至少4.6 .5 Gnuplot版本。

這是因爲從gnuplot的4.6.4更新: *在CSV文件CHANGE對待空字段爲「失蹤」,而不是「壞」

,而且似乎是在4.6(有關係嗎?)修正錯誤.5: *在製表符分隔值文件中FIX空的第一個字段被錯誤地忽略了

+0

好的。我可以確認,從4.6.4開始,以下命令可以很好地處理給定的數據集(用製表符分隔):'set datafile separator'\ t';設置風格的數據線;繪製'data.csv'u 1:2,'u 1:3,'u 1:4'。 – Christoph 2014-04-09 11:05:23