2015-02-09 110 views
1

我想繪製使用Gnuplot的TCP連接的帶寬增長。在Gnuplot中繪製垂直線來表示一維數據

我有兩個日誌文件,一個帶有一次帶寬,另一個帶有發生數據包丟失的時間戳。我想用與帶寬相同的圖表來表示數據包丟失,可能在X軸(時間)上有一條垂直線。

請提供建議!

就像一個非常粗略的例子,這裏是文件格式。

Bandwidth.dat

0.001 2 
 
0.002 3 
 
0.003 5 
 
0.004 8

Packet_Drop.dat

0.006 
 
0.12 
 
0.39

所需情節:

Expected Graph

對不起,不知道如何快速製作更好的圖表!

+1

請顯示一些關於您的日誌文件格式的更多信息(兩條或三條示例行)以及您的結果如何顯示的草圖。 – Christoph 2015-02-09 10:48:13

+0

謝謝!有沒有添加信息。對不起,不知道如何做得更好! – gkernel 2015-02-09 11:03:12

+1

這就足以知道我們在說什麼:) – Christoph 2015-02-09 11:52:12

回答

2

作爲一個選項,您可以使用impulses繪圖風格,其繪出= 0給定值,垂直線從Y:

max = 10 
plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\ 
    'Packet_Drop.dat' using 1:(max) with impulses linecolor rgb 'red' 

此選項的backdraw是,你必須知道的最大值y軸。你可以得到這個例如通過繪製到unknown終端,然後使用GPVAL_Y_MAX值:

set terminal push # save current terminal 
set terminal unknown 
plot 'Bandwidth.dat' using 2 
set terminal pop # restore terminal 

plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\ 
    'Packet_Drop.dat' using 1:(GPVAL_Y_MAX) with impulses linecolor rgb 'red' 

(一個不能使用stats得到一個的最大值自動定標的軸線。)

Alteratively可以在讀出的X - 將數據文件中的值轉換爲字符串,然後迭代單詞並相應地設置一些箭頭。在Linux上,使用

packet_drop = system('cat Packet_Drop.dat') 
set for [w in packet_drop] arrow from first w, graph 0 to first w, graph 1 linecolor rgb 'red' nohead 

plot 'Bandwidth.dat' using 1:2 with lines lc rgb 'black' 

在Windows上它應該

packet_drop = system('type Packet_Drop.dat') 

工作,你需要使用4.6版時使用的wgnuplot_pipes.exe

+0

第一個對我來說就像一個魅力!非常感謝。 如果/當我需要時,會嘗試其他人。 – gkernel 2015-02-09 12:41:59