【问题标题】:gnuplot "stats" command unexpected min & "out of range" resultsgnuplot“stats”命令意外的最小值和“超出范围”结果
【发布时间】:2014-07-16 20:53:53
【问题描述】:

我正在尝试开发直方图脚本。情节本身似乎是正确的,但我有一些问题或疑问:

  1. 我不明白为什么“统计”输出显示我的数据文件有“超出范围”点。这是什么意思?
  2. “统计”最小值看起来也不正确。从数据文件中,最小值 = -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

【问题讨论】:

    标签: gnuplot histogram


    【解决方案1】:

    如果您为stats 命令提供单个列,则yrange 用于从该列中选择范围。

    乍一看这没有意义,但其行为就像一个只有一列的plot 命令,在这种情况下,这一列是 y 值,而行号被选为 x 值。

    所以,只需将set yrange 部分移到stats 命令后面即可。

    data_file = 'sorted.csv'
    stats data_file using 1
    show variables all
    set yrange [0:*]
    plot data_file ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多