A histogram is basically used to represent data provided in a form of some groups.It is accurate method for the graphical representation of numerical data distribution.It is a type of bar plot where X-axis represents the bin ranges while Y-axis gives information about frequency.
Creating a Histogram
To create a histogram the first step is to create bin of the ranges, then distribute the whole range of the values into a series of intervals, and the count the values which fall into each of the intervals.Bins are clearly identified as consecutive, non-overlapping intervals of variables.The matplotlib.pyplot.hist() function is used to compute and create histogram of x.
The following table shows the parameters accepted by matplotlib.pyplot.hist() function :
| Attribute | parameter |
|---|---|
| x | array or sequence of array |
| bins | optional parameter contains integer or sequence or strings |
| density | optional parameter contains boolean values |
| range | optional parameter represents upper and lower range of bins |
| histtype | optional parameter used to creae type of histogram [bar, barstacked, step, stepfilled], default is “bar” |
| align | optional parameter controls the plotting of histogram [left, right, mid] |
| weights | optional parameter contains array of weights having same dimensions as x |
| bottom | location of the basline of each bin |
| rwidth | optional parameter which is relative width of the bars with respect to bin width |
| color | optional parameter used to set color or sequence of color specs |
| label | optional parameter string or sequence of string to match with multiple datasets |
| log | optional parameter used to set histogram axis on log scale |
Let’s create a basic histogram of some random values.Below code creates a simple histogram of some random values:
from matplotlib import pyplot as plt import numpy as np # Creating dataset a = np.array([22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27]) # Creating histogram fig, ax = plt.subplots(figsize =(10, 7)) ax.hist(a, bins = [0, 25, 50, 75, 100]) # Show plot plt.show() |
Output :

Customization of Histogram
Matplotlib provides a range of different methods to customize histogram.
matplotlib.pyplot.hist() function itself provides many attributes with the help of which we can modify a histogram.The hist() function provide a patches object which gives access to the properties of the created objects, using this we can modify the plot according to our will.
Example 1:
import matplotlib.pyplot as plt import numpy as np from matplotlib import colors from matplotlib.ticker import PercentFormatter # Creating dataset np.random.seed(23685752) N_points = 10000n_bins = 20 # Creating distribution x = np.random.randn(N_points) y = .8 ** x + np.random.randn(10000) + 25 # Creating histogram fig, axs = plt.subplots(1, 1, figsize =(10, 7), tight_layout = True) axs.hist(x, bins = n_bins) # Show plot plt.show() |
Output :

Example 2: The code below modifies the above histogram for a better view and accurate readings.
import matplotlib.pyplot as plt import numpy as np from matplotlib import colors from matplotlib.ticker import PercentFormatter # Creating dataset np.random.seed(23685752) N_points = 10000n_bins = 20 # Creating distribution x = np.random.randn(N_points) y = .8 ** x + np.random.randn(10000) + 25legend = ['distribution'] # Creating histogram fig, axs = plt.subplots(1, 1, figsize =(10, 7), tight_layout = True) # Remove axes splines for s in ['top', 'bottom', 'left', 'right']: axs.spines[s].set_visible(False) # Remove x, y ticks axs.xaxis.set_ticks_position('none') axs.yaxis.set_ticks_position('none') # Add padding between axes and labels axs.xaxis.set_tick_params(pad = 5) axs.yaxis.set_tick_params(pad = 10) # Add x, y gridlines axs.grid(b = True, color ='grey', linestyle ='-.', linewidth = 0.5, alpha = 0.6) # Add Text watermark fig.text(0.9, 0.15, 'Jeeteshgavande30', fontsize = 12, color ='red', ha ='right', va ='bottom', alpha = 0.7) # Creating histogram N, bins, patches = axs.hist(x, bins = n_bins) # Setting color fracs = ((N**(1 / 5)) / N.max()) norm = colors.Normalize(fracs.min(), fracs.max()) for thisfrac, thispatch in zip(fracs, patches): color = plt.cm.viridis(norm(thisfrac)) thispatch.set_facecolor(color) # Adding extra features plt.xlabel("X-axis") plt.ylabel("y-axis") plt.legend(legend) plt.title('Customized histogram') # Show plot plt.show() |
Output :

Recommended Posts:
- Histogram Plotting and stretching in Python (without using inbuilt function)
- Plot 2-D Histogram in Python using Matplotlib
- 3D Wireframe plotting in Python using Matplotlib
- Python | Matplotlib Sub plotting using object oriented API
- Python | Matplotlib Graph plotting using object oriented API
- 3D Contour Plotting in Python using Matplotlib
- 3D Surface plotting in Python using Matplotlib
- 3D Scatter Plotting in Python using Matplotlib
- Plotting cross-spectral density in Python using Matplotlib
- Plotting Various Sounds on Graphs using Python and Matplotlib
- Three-dimensional Plotting in Python using Matplotlib
- OpenCV Python Program to analyze an image using Histogram
- Histogram using Plotly in Python
- Compute the histogram of a set of data using NumPy in Python
- Different plotting using pandas and matplotlib
- Plotting graph For IRIS Dataset Using Seaborn And Matplotlib
- sciPy stats.histogram() function | Python
- Python PIL | Image.histogram()
- NumPy.histogram() Method in Python
- Box plot and Histogram exploration on Iris data
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

