gnuplot的“统计信息"命令意外的分钟&“超出范围"结果 [英] gnuplot "stats" command unexpected min & "out of range" results
本文介绍了gnuplot的“统计信息"命令意外的分钟&“超出范围"结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试开发直方图脚本.该情节本身似乎是正确的,但是我有一些问题或疑问:
I’m trying to develop a histogram script. The plot itself seems correct, but I have some problems or questions:
- 我不明白为什么统计"输出显示我的数据文件有超出范围"的点.是什么意思?
- 统计"最小值看上去也不正确.从数据文件中,最小值= -0.0312,但是统计信息报告为0.0.
脚本:
# Gnuplot histogram from "Gnuplot In Action", 13.2.1 Jitter plots and histograms (p. 256)
# these functions put data points (x) into bins of specified width
bin(x,width) = width*floor(x/width)
binwidth = 0.01
set boxwidth binwidth
# data file
data_file = "sorted.csv"
png_file = "sorted.png"
datapoint_count = 14
# taking explanations from the data file
set style data linesp
set key autotitle columnheader
set datafile separator "," # CSV format
# histogram
myTitle = "Histogram from \n" . data_file
set title myTitle
set style fill solid 1.0
set xlabel "Slack"
set mxtics
set ylabel "Count"
set yrange [0:*] # min count is always 0
set terminal png # plot file format
set output png_file # plot to file
print "xrange="
show xrange
print "yrange="
show yrange
stats data_file using ($1)
print "STATS_records=", STATS_records
print "STATS_invalid=", STATS_invalid
print "STATS_blank=", STATS_blank
print "STATS_min=", STATS_min
print "STATS_max=", STATS_max
plot data_file using (bin($1,binwidth)):(1) smooth frequency with boxes
数据文件:
slack
-0.0312219
-0.000245109
-4.16338e-05
-2.08616e-05
-1.82986e-05
8.31485e-06
1.00136e-05
1.23084e-05
0
0.000102907
0.000123322
0.000138402
0.19044
0.190441
输出:
gnuplot sorted.gp
Could not find/open font when opening font "arial", using internal non-scalable font
xrange=
set xrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
yrange=
set yrange [ 0.00000 : * ] noreverse nowriteback # (currently [:10.0000] )
* FILE:
Records: 9
Out of range: 5
Invalid: 0
Blank: 0
Data Blocks: 1
* COLUMN:
Mean: 0.0424
Std Dev: 0.0792
Sum: 0.3813
Sum Sq.: 0.0725
Minimum: 0.0000 [3]
Maximum: 0.1904 [8]
Quartile: 0.0000
Median: 0.0001
Quartile: 0.0001
STATS_records=9.0
STATS_invalid=0.0
STATS_blank=0.0
STATS_min=0.0
STATS_max=0.190441
推荐答案
如果将单个列提供给 stats
命令,则使用 yrange
选择范围从此列.
If you give a single column to the stats
command, the yrange
is used to select the range from this column.
乍一看,这没有任何意义,但其行为类似于 plot
命令,该命令只有一列,在这种情况下,该列为y值,并且选择了行号作为x值.
At first sight this doesn't make sense, but behaves like a plot
command which has only a single column, in which case this single column is the y-value and the row number is choosen as x-value.
因此,只需将 set yrange
部分移到 stats
命令的后面即可.
So, just move the set yrange
part behind the stats
command.
data_file = 'sorted.csv'
stats data_file using 1
show variables all
set yrange [0:*]
plot data_file ...
这篇关于gnuplot的“统计信息"命令意外的分钟&“超出范围"结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文