2015-12-03 44 views
2

所以,我必須包含值我.dat文件如下無法生成柱狀圖在gnuplot的「所有點的y值未定義」

d1 428 
d2 412 
d3 404 
d4 433 
d5 421 
d6 402 
d1 424 
d2 440 
d3 416 
d4 394 
d5 413 
... 

也有我.SH文件gnuplot的

reset 
n = 1 
max = 10. 
min = 0. 
width = (max-min)/n 
hist(x,width) = width*floor(x/width) + width/2.0 

set xrange[max:min] 
set yrange [0:] 

set term png 
set output "histogram.png" 

set boxwidth width*0.5 
set style fill solid 0.5 
set tics out nomirror 

set xlabel "Valor dado" 
set ylabel "Frecuencia" 


plot "dice.dat" u (hist($1,width)):(1.0) smooth freq w boxes lc rgb "red" notitle 

但gnuplot說:「所有的點都沒有定義!」 所以我的問題是如果有人能告訴我我做錯了什麼,除了爲什麼它是錯的。 我知道你可能有幫助其他人提出這種問題,但我不知道發生了什麼,我想了解,所以如果有人,如果心疼,以幫助我,我會非常感謝

回答

0

從您定義的hist函數中扣除,width是倉的寬度,並且您不能將xrange設置爲[min:max],因爲您只使用這些值來定義單個倉。另一件事是,gnuplot的列計數從1開始,數值在第二列,因此您必須使用hist($2, width)

的工作最小的腳本是那麼

reset 
width = 10.0 
hist(x,width) = width*floor(x/width) + width/2.0 

set yrange [0:*] 

set boxwidth 0.5 relative 
set style fill solid 0.5 

plot "dice.dat" u (hist($2,width)):(1.0) smooth freq w boxes lc rgb "red" notitle