How to Color Histogramm in Matplotlib

Maxim Maeder Feb 02, 2024
How to Color Histogramm in Matplotlib

This Tutorial teaches you how to color matplotlib histograms and solve an issue where the bars appear black.

Before we color our histograms, we need to set up our script to work with the library. So we start by importing matplotlib. Furthermore, we load the randrange function from the random module to quickly generate some data.

import matplotlib.pyplot as plt
from random import randrange

We continue by setting a style, to see all the styles available check out"classic")

Last but not least, we generate the data in a one-line loop. This won’t generate nice data that makes sense, but it’s good for testing purposes. Keep in mind that the data won’t be the same for you.

data = [randrange(0, 100) for _ in range(0, 800)]

Coloring the Histogram in Matplotlib

Now we make a colored histogram. We just pass the color argument a color name for doing that. Here lists all named colors available in matplotlib. Don’t also forget to call the show() function.

plt.hist(data, 3, color="red")

Possible result:

matplotlib histogram color - 3 bins

A problem arises when we set a higher amount of bins. As you see in the image, the color is no longer red but black.

matplotlib histogram color - high number of bins

This is because the style we used set the border color of the bars to black, and now it’s the only thing we see. To fix this, we either set the bar border width to 0 or its color also to red.

plt.hist(data, 500, color="red", ec="red")
# ec is the edge color


plt.hist(data, 500, color="red", lw=0)
# lw is the linewidth

Complete code:

import matplotlib.pyplot as plt
from random import randrange"classic")

data = [randrange(0, 100) for _ in range(0, 800)]

plt.hist(data, 500, color="red", lw=0)
Author: Maxim Maeder
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.


Related Article - Matplotlib Histogram