Generate points for cdf


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Generate points for cdf
# 1  
Old 06-09-2014
Generate points for cdf

Hi,

I am trying to make a cdf curve from the following data.

Code:
34.3
19.2
20.7
28.3
32.5
21
37.6

The output should be something like this:

Code:
0         0
19.2    0.14
20.7    0.28
21       0.42
28.3    0.56
32.5    0.70
34.3    0.84
37.6    0.98

I plan to feed this points to gnuplot to plot it as a graph. I tried plotting the same data with smooth cumulative function in gnuplot, which seems to not return the exact graph that I want.

Your help is much appreciated.

Thanks.
# 2  
Old 06-09-2014
Code:
 $ sort file | awk 'BEGIN{print 0"\t"0;a=0.14}{ printf "%s\t%s\n", $1,a;a+=0.14}'

0       0
19.2    0.14
20.7    0.28
21      0.42
28.3    0.56
32.5    0.7
34.3    0.84
37.6    0.98

# 3  
Old 06-10-2014
Hi,

Thanks for the response. I ended up writing an entire script from scratch to do this dynamically. I think that the code that you have posted needs input for the 1/number_of_entries value each time.

Here is my solution..

Code:
#!/bin/bash

count=$(cat sorted1.txt | wc -l)

var=$(echo "1/$count" | bc -l)

holding=$(echo "1/$count" | bc -l)

echo 0  > cdf1.txt
echo 0  >> cdf1.txt
#echo $var

for i in $(eval echo {1..$count})
do
	echo $var >> cdf1.txt
	var=$(echo "$var+$holding" | bc -l)
done

# 4  
Old 06-10-2014
You might want to consider this alternative:
Code:
sort -n file | awk '
{	d[++c] = $0
}
END {	inc = 1 / c
	for(i = 0; i <= c; i++)
		printf("%.1f\t%.2f\n", d[i], i * inc)
}'

which produces the output:
Code:
0.0	0.00
19.2	0.14
20.7	0.29
21.0	0.43
28.3	0.57
32.5	0.71
34.3	0.86
37.6	1.00

from your sample input.

I know this isn't the output you said you wanted, but it seems to be better suited to what you're trying to do.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Help with decimal points

Hi All, I would like to set decimal point to 16 in the following bash script but it has syntax error at }: awk '{printf"%.16e", (a<500,a++,$1/(a*1.1212121212121229e-02))}' input.dat >output.datHow may I set it in the correct way please? Thank you very much! (6 Replies)
Discussion started by: sxiong
6 Replies

2. Emergency UNIX and Linux Support

GNUPLOT CDF issue

Hi, I'm trying to generate a cdf graph using gnuplot's smooth cumulative function. Here is the input file 34.3 19.2 20.7 28.3 32.5 21 37.6 48.8 44.2 18.1 29.2 20.4 34.4 26.5 (2 Replies)
Discussion started by: jamie_123
2 Replies

3. Red Hat

Mount Points? How?

Hi folks, I have been asked to performed the following: Add the following new moint points systemA:/avp and SystemB:/usr/sap/trans to be the new linux server ZZZ How can I add those mount points and how those mount points can become another linuz server?:wall::wall::wall: (2 Replies)
Discussion started by: 300zxmuro
2 Replies

4. Shell Programming and Scripting

Aggregated points

Combine points of specific key (a1) based on user defined size (lets say 200 in this example). so a1 191 and 191+200 and sum of all the values (4th column) and vice versa... Thanx a bunch! a1 191 201 1 a1 201 211 2 a1 211 221 1 a1 ....... .... a2......... ........ (7 Replies)
Discussion started by: quincyjones
7 Replies

5. Post Here to Contact Site Administrators and Moderators

Points?

Has any thought been given to assigning points to threads much in the way the HP ITRC forums do? This might not be possible, just a thought. (1 Reply)
Discussion started by: candlejack
1 Replies

6. UNIX for Advanced & Expert Users

mount points

hi, I believe a mount point does not have to be a physical disk, but rather a logical one? Is this correct? if so, how can I find out if my mount points are on different physical disks? thanks (9 Replies)
Discussion started by: JamesByars
9 Replies

7. Shell Programming and Scripting

How can I get entries between two points

Hi, I am trying to write a script to get entries between two points lets say start and end points from a log file, the log file time format is as follows Start - 07/Aug/2008:18:26:43 End - 07/Aug/2008:19:36:43 I tried using the following awk command but it couldnt pick up the entries... (3 Replies)
Discussion started by: openspark
3 Replies

8. HP-UX

Cannot unmount mount points??

When taking a snap, I have a script that stops any active snap. When running the script, I'm getting a message that u02 and u04 are already mounted. How can I find out what process(es) is/are latching on the these mount points? Thank you for your time. (1 Reply)
Discussion started by: genzbeat
1 Replies

9. UNIX and Linux Applications

Gnuplot question: how to plot 3D points as colored points in map view?

I have a simple gnuplot question. I have a set of points (list of x,y,z values; irregularly spaced, i.e. no grid) that I want to plot. I want the plot to look like this: - points in map view (no 3D view) - color of each point should depend on its z-value. - I want to define my own color scale -... (0 Replies)
Discussion started by: karman
0 Replies

10. UNIX for Advanced & Expert Users

mount points

sometimes in Solaris 8 when I go to mount filesystems using either the mount command or by editing the /etc/vfstab, i get a nice little error message saying the the number of allowable mount points has been exceeded. I have read man pages until I am blue in the face and no where can I find what the... (3 Replies)
Discussion started by: manderson19
3 Replies
Login or Register to Ask a Question