简体   繁体   中英

GNUPLOT: saving data from smooth cumulative

I make this simple cumulative and histogram plot of a uniform random distribution of real numbers (n=1000):

http://www.filedropper.com/random1_1 : random1.dat

And the macro is:

unset key
clear
reset


n=120 #number of intervals
max=4. #max value
min=1. #min value

width=(max-min)/n #interval width
#function used to map a value to the intervals
bin(x,width)=width*floor(x/width)+width/2.0 # cosi viene centrato in mezzo
set xtics min,(max-min)/10,max
set boxwidth width
set style fill solid 0.5 border


set ylabel 'Frequency'
set y2label 'Cumulative frequency'
set y2tics 0,100,1000
set ytics nomirror

set xrange [0.9:4.1]
set yrange [0:25]

set terminal pngcairo size 800,500 enhanced font 'Verdana,14'
set output "testCum.png"

plot 'random1.dat' using (bin($1,width)):(1.0) smooth frequency with boxes title 'histogram',\
'' using (bin($1,width)):(1.0) smooth cumulative axis x1y2 w l lt 2 lw 2 lc rgb 'green' title 'cumul'

Now the output.png is:

在此输入图像描述

How I can tell to Gnuplot I want to take not only the cumulative plot but also the numbers coming from it saved in a particular file.dat ?

You can save the data after applying smooth with set table ... . In the simplest case, if you need only the cumulative data, just use:

set table 'random1-smoothed.dat'
plot 'random1.dat' using (bin($1,width)):(1.0) smooth cumulative
unset table

For better inclusion in your script you could also wrap the whole, existing plot command in set table :

...
set table 'random1-smoothed.dat'
plot 'random1.dat' using (bin($1,width)):(1.0) smooth frequency with boxes title 'histogram',\
'' using (bin($1,width)):(1.0) smooth cumulative axis x1y2 w l lt 2 lw 2 lc rgb 'green' title 'cumul'
unset table

set terminal pngcairo size 800,500 enhanced font 'Verdana,14'
set output "testCum.png"
replot

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM