English 中文(简体)
Gnuplot Cumulative Column Question
原标题:
  • 时间:2009-11-13 18:01:13
  •  标签:
  • plot
  • gnuplot

I have some data.

#Time  Distance
 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40

I want to plot the cumulative distance wrt time in gnuplot ... (it should be easy) but I do not know how.

x

问题回答

For anyone still looking for this sort of thing, If your gnuplot version is 4.4 or newer, you can do the following:

a=0
#gnuplot 4.4+ functions are now defined as:  
#func(variable1,variable2...)=(statement1,statement2,...,return value)
cumulative_sum(x)=(a=a+x,a)
plot "test.dat" using 1:(cumulative_sum($2))

If your data is in the file datafile, you can do a cumulative plot like so:

$ gnuplot
gnuplot> plot "datafile" smooth cumulative

Assuming your data is in a file "test.txt", how about:

plot "<awk  {i=i+$2; print $1,i}  test.txt" with lines

The same can be achieved by the "cumulative" variant of the "smooth" option (just enter help smooth in gnuplot).

This isn t what the question is looking for but "gnuplot cumulative distribution function" always leads me here and none of the answers are quite right unless you already have the data gnuplot expects.

But suppose you wanted a cumulative distribution function of just distances and only have the raw distances. There is a little trick with which gnuplot can calculate the y values:

test.dat:

#Time  Distance
 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40

plot.gpi:

datafile = test.dat
stats datafile
plot datafile using 2:(1./STATS_records) smooth cumulative title "distance"

enter image description here

It is not as flexible as having all the data, though.

I have a little experience with Gnuplot and I just pored over the documentation some. Unfortunately, I wasn t able to find a solution for generating a cumulative sum as you re plotting.

I think what you ll need to do is to massage your data with another program before letting Gnuplot at it. awk is one program that comes to mind, it s practically built for fiddling with columnar data. You can integrate this process into the plotting process by following these instructions.





相关问题
Choosing line type and color in Gnuplot 4.0

I have two pairs of datasets, which I need to plot using Gnuplot. I want the first pair to be plotted in red, one solid and one dashed. The second pair, I want to plot in blue, one solid and one ...

Graph Formatting Tools For Octave

I know that Matlab allows for you to format the graph after its created through the interface. However there isn t the same features in Octave. Is there a tool that goes between Octave and GnuPlot? If ...

Labels on the input data in gnuplot

I have a datafile that looks like this #index name1 name2 name3 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 I want to plot 3 lines: plot "data" using 1:2 with lines, ... This works ok, except for the line ...

Drawing gant-like diagram from file in C with boxes and axis

I am programming system in C and I would like to draw rectangles into 2D plain with axis X and Y to represent generated data (scheduling problems).It should LOOK LIKE gant chart. Information are ...

Treat axis as date/time (epoch)

I m generating a graph with gnuplot of activity over the last twenty four hours, but the time axis looks really bad because it s trying to fit the long number for every five minutes in the last day. ...

Gnuplot Cumulative Column Question

I have some data. #Time Distance 1 3 2 5 4 9 8 11 12 17 14 20 16 34 20 40 I want to plot the cumulative distance wrt time in gnuplot ... (it should be easy) but I do not know how. x

Direct 2D gnuplot PNG animation?

Can anyone please confirm that yes/no Gnuplot 4.5 (on CVS) can output 2D animated PNG files? I have numerous datasets but one line that I d like to show iteratively in 3 different places in my graph. ...

热门标签