2015-06-06 84 views
0

我正在繪製一些數據,我得到了多條線在整個劇情中裸奔。應該有一條線,所以我想象gnuplot正在嘗試適合數據,並以奇怪的方式加入點或其他東西。我怎樣才能讓gnuplot繪製一個而不是多行?這裏是我的腳本:如何使gnuplot不能繪製多行?

set term png font 'Liberation Sans,10' size 800,200 
set output "data/values.png" 
set style line 1 lt 1 lw 1 lc rgb "purple" pt -1 
set xlabel "Time" font 'Liberation Sans,10' 
set xdata time 
set timefmt "%Y-%m-%d %H:%M:%S" 
set xtics font 'Liberation Sans,10' 
set ytics font 'Liberation Sans,10' 
set autoscale y 
plot "data.txt" using 1:5 ls 1 smooth bezier with lines 

Output of the gnuplot script

+1

因爲這條線是連接的,我猜你的數據沒有按x軸值排序,所以它會來回移動。如果有斷開連接,我希望數據文件中有空行。 –

+0

我想到了這一點,數據按時間排序......但我會再看一遍,我從數據庫中提取數據,並且它從來沒有失序過。 – Xofo

+0

如果您使用的是sql server,那麼除非您明確告訴它,您希望將數據分類,否則它可以執行任何想要的操作。並可能會。 –

回答

1

您可以使用sort對數據進行排序。考慮我所產生的與你的時間格式保持一致的數據文件:

2000-12-21 12:32:05 1 
2001-11-21 12:32:05 2 
2000-12-20 12:32:05 3 
2000-12-20 12:32:04 4 

鍵入sort data.txt會產生正確的順序:通過使用特殊輸入名稱plot "< sort data.txt" ...

2000-12-20 12:32:04 4 
2000-12-20 12:32:05 3 
2000-12-21 12:32:05 1 
2001-11-21 12:32:05 2 

可以gnuplot的範圍內調用此:

set xdata time 
set timefmt "%Y-%m-%d %H:%M:%S" 
plot "data.txt" using 1:3 w l 

enter image description here

set xdata time 
set timefmt "%Y-%m-%d %H:%M:%S" 
plot "< sort data.txt" using 1:3 w l 

enter image description here

,如果您需要更強大的相對於你的數據格式進行排序,您可以諮詢sort文檔。

+0

這是一個非常好的迴應...我仍然在探討這個問題,我非常感謝迴應。 – Xofo

+0

答案是數據沒有排序。我有一個超過20,000行的數據文件。通常數據按順序插入,但在這種情況下不是。我所做的就是當我使用「ORDER BY」提取數據時對數據進行排序......我確實拿到了Karl Ratzsch並且仔細查看了數據,發現了一些數據出錯的地方。 – Xofo