[Numpy-discussion] help creating a reversed cumulative histogram

Tim Michelsen timmichelsen at gmx-topmail.de
Wed Sep 2 19:15:28 EDT 2009


Hello fellow numy users,
I posted some questions on histograms recently [1, 2] but still couldn't 
find  a solution.

I am trying to create a inverse cumulative histogram [3] which shall 
look like [4] but with the higher values at the left.

The classification shall follow this exemplary rule:

class 1: 0
all values > 0

class 2: 10
all values > 10

class 3: 15
all values > 15

class 4: 20
all values > 20

class 5: 25
all values > 25

[...]

I could get this easily in a spreadsheet by creating a matix with 
conditional statements (if VALUES_COL > CLASS_BOUNDARY; VALUES_COL; '-').

With python (numpy or pylab) I was not successful. The plotted histogram 
envelope turned out to be just the inverted curve as the one created 
with the spreadsheet app.
	
I have briely visualised the issue here [5]. I hope that this makes it 
more understandable.
	
Later I would like to sum and count all values in each bin as discussed 
in [2].

May someone give me pointer or hint on how to improve my code below to 
achive the desired histogram?



Thanks a lot in advance,
Timmie

[1]: http://www.nabble.com/np.hist-with-masked-values-to25243905.html
[2]: 
http://www.nabble.com/histogram%3A-sum-up-values-in-each-bin-to25171265.html
[3]: http://en.wikipedia.org/wiki/Histogram#Cumulative_histogram
[4]: http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=126
[5]: http://www.scribd.com/doc/19371606/Distribution-Histogram

##### CODE #####
normed = False
values # loaded data as array
bins = 10


### sum
## taken from
## 
http://www.nabble.com/Scipy-and-statistics%3A-probability-density-function-to24683007.html#a24683304
sums = np.histogram(values, weights=values,
                                     normed=normed,
                                     bins=bins)
ecdf_sums = np.hstack([0.0, sums[0].cumsum() ])
ecdf_inv_sums = ecdf_sums[::-1]


pylab.plot(sums[1], ecdf_inv_sums)
pylab.show()




More information about the NumPy-Discussion mailing list