2010-04-29 99 views
1

我需要繪製一些數據,這些數據並不完全是最友好的格式,大多數示例或用法將事物放在一個很容易解析和繪製的很好的列/表中。不過,我有以下格式(和我有點卡住關於如何解決這個):*我已經添加了日期之間的額外空間用於可讀性如何使用gnuplot繪製不友好格式的數據?

DATE1 label_1 xx yy 
DATE1 label_2 xx yy 
DATE1 label_3 xx yy 

DATE2 label_2 xx yy 
DATE2 label_3 xx yy 

DATE3 label_1 xx yy 
DATE3 label_2 xx yy 
DATE3 label_3 xx yy 

DATE4 label_2 xx yy 
DATE4 label_3 xx yy 
...continues 

**注意:在DATE2下,DATE4 label_1缺失,即數據文件可能具有來來去去的標籤,並且應該表示圖中的不連續性。

我想讓X軸使用DATEX作爲標籤,然後爲每個標籤創建兩條線(分別爲xx和yy)。

有沒有人對解決這個問題的最佳方法有任何建議?

回答

2

我不太明白你想製作什麼樣的圖。點由兩個座標定義,我可以想象將多個數據集繪製在一起進行比較,這樣就可以解釋三個參數。第四個適合在哪裏?你想要一個聚類直方圖嗎?無論如何,如果我得到的數據格式不適合gnuplot,我通常會做一些預處理來爲gnuplot(使用Common Lisp或Perl)生成數據文件。

更新:按照你澄清評論,我將會把文件轉換成以下格式:

 
# DATE, label-1-x, label-1-y, label-2-x, label-2-y, label-3-x, label-3-y 
    1,  xx,  yy,  xx,  yy,  xx,  yy 
    . 
    . 
    . 
+0

我對此感到抱歉。澄清:每個label_ *的XX將是一個線圖,YY將是另一個label_ *。所以每個label_ *都會有兩個與之關聯的線圖。在這個特定的例子中,圖中總共有6行。 – Zack 2010-04-30 05:54:44

3

您最好的選擇可能只是一個Gunplot.py(http://gnuplot-py.sourceforge.net/)創建將執行一個腳本你需要的任務。然後,您可以像在gnuplot中那樣構建陰謀。

g = Gnuplot.Gnuplot() 
    g('set datafile separator " "') 
    plot = "plot " 
    plot += "'%s' using 1:3 title '($2)' with lines" % (filename)) 
    plot += ", '%s' using 1:4 title '($2)' with lines" % (filename)) 
    g(plot) 

如果你還沒有看過gnuplot.py,我肯定會給它看看。那裏還有一個郵件列表,可能會有更具體的幫助。

+0

這張發佈超過7年前,但是我正在尋找。 TNX,@olan。 – SDsolar 2017-06-10 18:58:39