Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to create a histogram in matplotlib

Understanding Histograms

Before we dive into the technical details of creating a histogram using matplotlib, let's first understand what a histogram is. A histogram is a type of graph that represents the distribution of data. It's like a snapshot that shows where the majority of the values fall in a dataset. Imagine you take a handful of coins and spread them on a table. If you group these coins based on their value and then count how many coins you have in each group, you've essentially created a histogram in real life.

Setting Up Your Environment

To create a histogram in matplotlib, you first need to have Python installed on your computer. Once you have Python, you can install matplotlib, which is a plotting library for Python. You can install it using pip, which is the Python package manager, by running the following command in your terminal or command prompt:

pip install matplotlib

With matplotlib installed, you're ready to start coding. Make sure you also have a code editor open, where you can write and run your Python scripts.

Starting with Matplotlib

Matplotlib is a powerful library that enables you to create a wide range of graphs and plots in Python. To begin, you'll need to import the library into your Python script. You can do this with the following line of code:

import matplotlib.pyplot as plt

Here, plt is an alias we create for matplotlib.pyplot, which is a module in matplotlib that contains functions that help with plotting graphs. Using an alias is like giving a nickname to someone; it's a shorthand way to refer to something that might have a longer name.

Creating Your First Histogram

To create a histogram, you need a dataset. For the sake of simplicity, let's create a list of numbers that represents the ages of a group of people:

ages = [18, 21, 29, 30, 30, 31, 35, 36, 40, 45, 51, 60]

With your dataset ready, you can now use the hist() function from matplotlib to create your histogram:

plt.hist(ages, bins=5, edgecolor='black')

In this code snippet, plt.hist() is the function that generates the histogram. The first argument, ages, is the dataset you're plotting. The parameter bins specifies how many groups you want to divide your data into. In this case, bins=5 means that matplotlib will distribute all the ages into 5 groups. The edgecolor parameter is optional and it sets the color of the border line of each bar in the histogram.

When you run this script, a window will pop up displaying the histogram.

Customizing Your Histogram

Matplotlib allows you to customize your histogram in various ways to make it more informative and visually appealing. Here are a few customizations you can apply:

Adjusting the Number of Bins

The bins parameter in the hist() function is very important because it can drastically change the appearance of your histogram. If you choose too few bins, you might miss important details in the data. If you choose too many, the graph might become too cluttered. You can specify the number of bins directly by passing an integer, or you can pass a list of bin edges. Here's an example with specified bin edges:

bins = [10, 20, 30, 40, 50, 60]
plt.hist(ages, bins=bins, edgecolor='black')

Labeling the Axes

To make your histogram more understandable, you should label the axes. You can do this with the xlabel() and ylabel() functions:

plt.hist(ages, bins=5, edgecolor='black')
plt.ylabel('Number of People')

Adding a Title

A title can give immediate context to the graph. You can add a title using the title() function:

plt.hist(ages, bins=5, edgecolor='black')
plt.title('Age Distribution')
plt.ylabel('Number of People')

Understanding Histograms Through Analogies

Think of your histogram as a city skyline, where each building represents a bin and the height of the building represents how many data points fall into that bin. Just like a city planner might decide how to group buildings, you decide how to group your data with the bins parameter.

Analyzing Your Histogram

Once you've created your histogram, take a moment to analyze it. Does it look like a city with skyscrapers in one area and smaller buildings elsewhere? This could mean that you have a lot of data points concentrated in certain age ranges. Or is it more like a mountain range with peaks and valleys? This could indicate multiple age groups that are common in your dataset.

Going Beyond Basics

As you get more comfortable with histograms, you may want to explore more advanced features of matplotlib. For example, you can overlay a probability density function, add annotations, or customize the style of your plot further.


Creating a histogram in matplotlib is like telling a story with numbers. With each bin, you're capturing a chapter of the distribution tale. As you tweak the number of bins or customize the look of your histogram, you're editing this story to make it clearer and more engaging for your audience. Remember that the goal is not just to display data, but to convey information in a way that is easy to understand and meaningful. Happy plotting, and may your data always tell a compelling story!