Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting information for bins in matplotlib histogram function

I am plotting a histogram in python using matplotlib by:

plt.hist(nparray, bins=10, label='hist') 

Is it possible to print a dataframe that has the information for all the bins, like number of elements in every bin?

like image 608
dreamer_999 Avatar asked Oct 18 '13 05:10

dreamer_999


People also ask

How do you find the bins for a histogram?

Calculate the number of bins by taking the square root of the number of data points and round up. Calculate the bin width by dividing the specification tolerance or range (USL-LSL or Max-Min value) by the # of bins.

How do you extract data from a histogram in Python?

To get the values from a histogram, plt. hist returns them, so all you have to do is save them.


1 Answers

The return values of plt.hist are:

Returns: tuple : (n, bins, patches) or ([n0, n1, ...], bins, [patches0, patches1,...])

So all you need to do is capture the return values appropriately. For example:

import numpy as np import matplotlib.pyplot as plt  # generate some uniformly distributed data x = np.random.rand(1000)  # create the histogram (n, bins, patches) = plt.hist(x, bins=10, label='hst')  plt.show()  # inspect the counts in each bin In [4]: print n [102  87 102  83 106 100 104 110 102 104]  # and we see that the bins are approximately uniformly filled. # create a second histogram with more bins (but same input data) (n2, bins2, patches) = plt.hist(x, bins=20, label='hst')  In [34]: print n2 [54 48 39 48 51 51 37 46 49 57 50 50 52 52 59 51 58 44 58 46]  # bins are uniformly filled but obviously with fewer in each bin. 

The bins that is returned defines the edges of each bin that was used.

like image 147
Bonlenfum Avatar answered Sep 21 '22 21:09

Bonlenfum