我使用平滑频率函数遇到gnuplot 5.0.3的问题。我使用附加的gnpulot脚本在数据上使用函数看起来像下面的示例行4140行。 我在绘图命令中使用平滑频率,一旦在set table包装器中输出$ DB中的频率数据,在实际图形绘图命令中输出一次。 在两种情况下,输出都产生2个相同的箱或类别的计数。 accval_col中的列包含1到9的离散整数数据,所需的工作是计算这些类别的出现次数并将其绘制在直方图中。
如果我为前3400条记录运行脚本,则会在出现问题后正确执行计数。为每个类别分配的计数,总计到该类别的总计数。但我没有解释为什么会发生这种分裂以及如何消除它。
感谢您的任何帮助,谢谢。
reset
reset session
#input file
accfile=ARG1
#out_path=ARG2
#columns
accval_col=21
misses_col=13
#########################################################################
set term qt #pdfcairo font "Arial,7"
set datafile separator ";"
#print out_path
set output out_path
stats accfile u (((stringcolumn(misses_col)eq "\N") || (column(misses_col)==0))?column(accval_col):1/0) name "acc" #nooutput
set table $DB
plot accfile u (((stringcolumn(misses_col)eq "\N") || (column(misses_col)==0))?column(accval_col):1/0):(1.0*100/acc_records) smooth frequency
unset table
print $DB
set multiplot
unset key
set yrange [0:100]
set xrange [0.5:8.5]
set xtics ("<=3m" 1, "<=7,5m" 2, "<=12m" 3, "<=15m" 4, "<=20" 5, "<=30m" 6, "<=40m" 7, "<=50m" 8)
set boxwidth 0.5
set style fill solid 0.5
set xlabel "Kategorie"
set ylabel "Häufigkeit in %"
set title "Häufigkeitsdiagramm von Fehler Kategorien"
unset grid
set margins 8, 8, 6, 6
plot accfile u (((stringcolumn(misses_col)eq "\N") || (column(misses_col)==0))?column(accval_col):1/0):(1.0*100/acc_records) smooth frequency w boxes
set yrange[0:100]
unset xlabel
unset ylabel
unset title
unset ytics
unset xtics
set datafile separator
plot $DB u (stringcolumn(3) ne "u"?column(1):1/0):(column(2)+ 1.5):2 w labels
unset multiplot
set o
输入数据的一个示例行,只有脚本的相关列是21(后面的第二个)
2016-03-17;86347;1;26.68;300.14;;;;; ;3949600;FRA_VC_CAT10_SMR_W_032016;1;2476187;\N;2476187;-8.53550654341171;5.943441933097802;FRA_VC_CAT10_SMR_W_032016;6125718;3;10.400931398905074
STDOUT上的输出:
* FILE:
Records: 4138
Out of range: 0
Invalid: 2
Blank: 0
Data Blocks: 1
* COLUMN:
Mean: 3.3971
Std Dev: 1.2643
Sample StdDev: 1.2645
Skewness: 0.9423
Kurtosis: 4.1839
Avg Dev: 1.0162
Sum: 14057.0000
Sum Sq.: 54367.0000
Mean Err.: 0.0197
Std Dev Err.: 0.0139
Skewness Err.: 0.0381
Kurtosis Err.: 0.0762
Minimum: 1.0000 [ 6]
Maximum: 9.0000 [4002]
Quartile: 3.0000
Median: 3.0000
Quartile: 4.0000
# Curve 0 of 1, 20 points
# Curve title: "accfile u (((stringcolumn(misses_col)eq "\N") || (column(misses_col)==0))?column(accval_col):1/0):(1.0*100/acc_records)"
# x y type
1 1.08748 i
2 21.7013 i
3 33.0594 i
4 13.0256 i
5 10.5848 i
6 2.27163 i
7 0.652489 i
8 0.314161 i
9 0.338328 i
1 0.0241663 u
1 0.144998 i
2 1.57081 i
3 5.58241 i
4 3.67327 i
5 3.67327 i
6 2.1508 i
7 0.120831 i
8 0.0241663 i
9 0.0241663 i
1 0.0241663 u