Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to change color in matplotlib

Understanding Colors in Matplotlib

When you're starting to learn programming, especially data visualization, you'll quickly realize the importance of colors. Colors can help differentiate data, make your charts more readable, and even convey specific messages through color psychology. In Matplotlib, which is a popular plotting library in Python, changing colors is a simple yet powerful way to enhance your visualizations.

The Basics of Color Specification

Before diving into the code, let's understand what we mean by color in the context of computer graphics. Colors on screens are typically defined by three primary colors: Red, Green, and Blue (RGB). By mixing these colors in different intensities, we can create a wide range of colors. In Matplotlib, you can specify colors in several ways:

  1. Name: You can use a color name, like 'blue' or 'green'.
  2. Hex Code: A hex code is a six-digit number preceded by a hash symbol (#), representing the intensity of red, green, and blue. For example, '#ff0000' is the hex code for red.
  3. RGB Tuple: An RGB tuple is a set of three numbers between 0 and 1 that represent the intensity of red, green, and blue. For example, (1.0, 0.0, 0.0) represents red.
  4. RGBA Tuple: Similar to RGB but with an additional value for alpha (transparency), where 0 is fully transparent and 1 is fully opaque.

Setting Colors in Matplotlib

Let's start with some actual code. Imagine you're plotting a simple line graph and you want to change the line color to blue. Here's how you would do it:

import matplotlib.pyplot as plt

# Sample data
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]

# Plotting the line with blue color
plt.plot(x, y, color='blue')
plt.show()

This code snippet creates a basic line graph where the line is colored blue. The color parameter is where the magic happens. You can replace 'blue' with any other color name or method of specifying colors mentioned above.

Changing Colors for Different Elements

In a plot, you might have multiple elements, such as lines, markers, and backgrounds. Let's see how you can change colors for these different components.

Line Color

As shown above, you can change the line color using the color parameter. But what if you want to use a hex code?

# Plotting the line with a hex code for a shade of purple
plt.plot(x, y, color='#800080')
plt.show()

Marker Color

Markers are small symbols like circles, squares, or triangles that mark the data points. You can change their edge and face colors separately.

# Plotting with markers with a red edge and green face
plt.plot(x, y, marker='o', markerfacecolor='green', markeredgecolor='red')
plt.show()

Background Color

To change the background color of the plot area, you can use the set_facecolor method.

# Set the background color to a light gray
ax = plt.gca()  # gca stands for 'get current axis'
ax.set_facecolor('#D3D3D3')
plt.plot(x, y)
plt.show()

Using Colormaps

Matplotlib also provides colormaps, which are a series of colors in a gradient. Colormaps are particularly useful in heatmaps or contour plots, where the color intensity represents different data values.

import numpy as np

# Random data
matrix_data = np.random.rand(10,10)

# Heatmap with the 'viridis' colormap
plt.imshow(matrix_data, cmap='viridis')
plt.colorbar()  # Show color scale
plt.show()

In this snippet, imshow displays the data as an image and cmap sets the colormap. plt.colorbar() adds a color scale to the side of the plot.

Intuition and Analogies

To better understand the concept of changing colors, think of your plot as a blank canvas and Matplotlib as your set of paints. Just like an artist selects specific colors to bring their painting to life, you choose colors to highlight the key elements of your data story.

Imagine you're painting a sunset. You wouldn't just use one color; you'd mix different shades to create depth and detail. Similarly, by using different colors and colormaps in your plot, you can emphasize certain data points and guide your audience's attention where you want it.

Best Practices for Using Colors

When you're choosing colors for your plots, keep these tips in mind:

  1. Contrast: Ensure there's enough contrast between your colors so that all elements are easily distinguishable.
  2. Accessibility: Be mindful of colorblindness. Avoid combinations like green and red, which are commonly indistinguishable for colorblind individuals.
  3. Consistency: Use consistent colors for the same types of data across multiple plots to avoid confusion.

Conclusion: The Power of Color in Data Visualization

Colors are not just for making your plots look pretty; they're a crucial tool in telling the story of your data. By skillfully changing colors in Matplotlib, you can create visualizations that are not only informative but also engaging and memorable. As you continue your journey in programming and data visualization, remember that the colors you choose can transform data from a collection of numbers into a compelling narrative. So go ahead, experiment with different hues and shades, and watch your data come alive with color!