AI Reading
Quick summary of this article
This tutorial chapter explains how to use Matplotlib for image display and color visualization, covering everything from basic image rendering to advanced color mapping techniques. It demonstrates how images are represented as arrays, how to use different colormaps to convey data values, and how to add colorbars for better readability.
- Images in Matplotlib are handled as 2D arrays, with
imshow()used to display them and thecmapparameter to control color mapping. - Matplotlib offers many built-in colormaps including sequential (Greens, Blues), diverging (coolwarm, bwr), and categorical (tab10, Set3) options for different data types.
- Colorbars can be added with
colorbar()to show how colors correspond to numeric values, with options to customize size and position usingfractionandpadparameters. - Grayscale display is achieved with
cmap='gray', and transparency can be controlled using thealphaparameter. - Custom colormaps can be created using
ListedColormap, and existing colormaps can be reversed by appending_rto the colormap name.
📘 Matplotlib Tutorial – Chapter 8: Working with Images and Colors
Matplotlib is not just about charts — it’s a versatile library that can handle image processing and color visualization too. In this chapter, you’ll learn how to display images, apply different color schemes, and use colorbars to represent data values clearly.
✅ Understanding Image Handling in Matplotlib
Images in Matplotlib are represented as two-dimensional arrays where each element corresponds to a pixel’s intensity. These can be grayscale or RGB(A) images.
import matplotlib.pyplot as plt
import numpy as np
# Create a random image
image = np.random.rand(10, 10)
plt.imshow(image, cmap='viridis')
plt.colorbar()
plt.title("Random Image Display with Viridis Colormap")
plt.show()
The imshow() function displays image data, and the cmap argument specifies the colormap used to translate numbers into colors.
✅ Displaying Real Images
You can load and visualize real images easily using matplotlib.image or the Pillow (PIL) library.
import matplotlib.image as mpimg
img = mpimg.imread('example.jpg')
plt.imshow(img)
plt.axis('off') # Hide axes
plt.title("Loaded Image using Matplotlib")
plt.show()
Matplotlib automatically detects whether an image is grayscale or RGB.
✅ Using Colormaps (cmap)
Colormaps define how numerical values are converted into color shades. Matplotlib includes dozens of ready-to-use colormaps such as viridis, plasma, cividis, gray, and inferno.
plt.imshow(image, cmap='plasma')
plt.colorbar()
plt.title("Plasma Colormap Example")
plt.show()
- Sequential colormaps – best for low-to-high continuous data (
Greens,Blues). - Diverging colormaps – useful when data has a midpoint (
coolwarm,bwr). - Categorical colormaps – ideal for separate categories (
tab10,Set3).
✅ Adding Colorbars
A colorbar shows how colors correspond to numeric values, improving the readability of visualizations.
plt.imshow(image, cmap='inferno')
plt.colorbar(label='Intensity Scale')
plt.title("Adding Colorbar Example")
plt.show()
To adjust the size or spacing of the colorbar, use parameters like fraction and pad:
plt.imshow(image, cmap='coolwarm')
plt.colorbar(fraction=0.046, pad=0.04)
plt.title("Custom Colorbar Size and Position")
plt.show()
✅ Grayscale and Transparency
For grayscale displays, use cmap='gray'. To add transparency, apply the alpha parameter.
plt.imshow(image, cmap='gray', alpha=0.8)
plt.title("Grayscale Image with Transparency")
plt.show()
✅ Custom Colormaps
You can create personalized colormaps using ListedColormap or reverse any existing one by appending _r.
from matplotlib.colors import ListedColormap
new_cmap = ListedColormap(['#000000', '#FF0000', '#FFFF00', '#00FF00'])
plt.imshow(image, cmap=new_cmap)
plt.title("Custom Listed Colormap Example")
plt.show()
✅ Color Normalization
Normalization maps data values to a defined range of colors, ensuring that your visuals represent data consistently even if the values vary widely.
from matplotlib import colors
norm = colors.Normalize(vmin=0, vmax=1)
plt.imshow(image, cmap='viridis', norm=norm)
plt.colorbar()
plt.title("Color Normalization Example")
plt.show()
✅ Summary
- Use
imshow()to render images. - Apply
cmapfor color transformation. - Add
colorbar()for clear value representation. - Experiment with custom colormaps and normalization.
In the next chapter, we’ll move into 3D Plotting — where you’ll learn to visualize 3D data using mpl_toolkits.mplot3d.
