簡體   English   中英

使用Gnuplot繪制數據

[英]Plotting data using Gnuplot

我有一個csv文件,包括兩列

no. of packet   size 
1               60 
2               70 
3              400
4              700
.
.
.
1000000         60

第一列在哪里

包數

,第二列是

數據包的大小(以字節為單位)。

csv文件中的數據包總數為一百萬。 我需要通過以下方式繪制此數據文件的直方圖:

xrange = [0, 5 , 10 , 15 ] 

表示數據包大小(以字節為單位)。 范圍[0]表示小於100個字節的數據包大小,[5]表示小於500個字節的數據包字節,依此類推。

yrange = [ 10, 100, 10000, 100000000], 

表示包數

任何幫助將不勝感激。

不太清楚它是如何工作的,但是在我的Gnuplot in Action書中給出的用於創建直方圖的命令是

bin(x,s) = s*int(x/s)
plot "data-file" using (bin(1,0.1)):(1./(0.1*300)) smooth frequency with boxes

我相信smooth frequency對您來說是重要的命令,您需要弄清楚using參數應該是什么(可能使用的函數不同)。

這應該做的工作:

# binning function for arbitrary ranges, change as needed
bin(x) = x<100 ? 0 : x<500 ? 5 : x<2500 ? 10 : 15 

# every occurence is counted as (1)
plot datafile using (bin($2)):(1) smooth freq with boxes

我不太確定您的意思是“ yrange [10 100 1000 ...]”,是否要使用對數標度的縱坐標?

然后就

set xrange [1:1e6]
set logscale y

在繪制之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM