Map values to colors in Matplotlib

To map values to colors (red, green, and blue) in Matplotlib, you can use the colormap and normalization features. This technique is useful for creating custom color schemes based on data values.

Basic Color Mapping

Here's how to map numerical values to RGB color tuples ?

import numpy as np
from matplotlib import cm, colors

# Create values from 1.0 to 2.0
values = np.linspace(1.0, 2.0, 10)

# Normalize data to [0, 1] range
norm = colors.Normalize(vmin=1.0, vmax=2.0, clip=True)

# Create color mapper using grayscale colormap
mapper = cm.ScalarMappable(norm=norm, cmap=cm.Greys_r)

# Map each value to RGB components
for value in values:
    rgba = mapper.to_rgba(value)
    print("%.2f" % value, "=",
          "red:%.2f" % rgba[0],
          "green:%.2f" % rgba[1],
          "blue:%.2f" % rgba[2])
1.00 = red:0.00 green:0.00 blue:0.00
1.11 = red:0.13 green:0.13 blue:0.13
1.22 = red:0.28 green:0.28 blue:0.28
1.33 = red:0.41 green:0.41 blue:0.41
1.44 = red:0.53 green:0.53 blue:0.53
1.56 = red:0.66 green:0.66 blue:0.66
1.67 = red:0.78 green:0.78 blue:0.78
1.78 = red:0.87 green:0.87 blue:0.87
1.89 = red:0.95 green:0.95 blue:0.95
2.00 = red:1.00 green:1.00 blue:1.00

Using Different Colormaps

You can use various colormaps to create different color schemes ?

import numpy as np
from matplotlib import cm, colors

values = [0.2, 0.5, 0.8]
norm = colors.Normalize(vmin=0, vmax=1)

# Try different colormaps
colormaps = ['viridis', 'plasma', 'coolwarm']

for cmap_name in colormaps:
    print(f"\nColormap: {cmap_name}")
    mapper = cm.ScalarMappable(norm=norm, cmap=cmap_name)
    
    for value in values:
        rgba = mapper.to_rgba(value)
        print(f"  {value} ? RGB({rgba[0]:.2f}, {rgba[1]:.2f}, {rgba[2]:.2f})")
Colormap: viridis
  0.2 ? RGB(0.28, 0.18, 0.45)
  0.5 ? RGB(0.13, 0.57, 0.55)
  0.8 ? RGB(0.73, 0.84, 0.27)

Colormap: plasma
  0.2 ? RGB(0.52, 0.06, 0.33)
  0.5 ? RGB(0.81, 0.34, 0.55)
  0.8 ? RGB(0.96, 0.76, 0.38)

Colormap: coolwarm
  0.2 ? RGB(0.30, 0.55, 0.80)
  0.5 ? RGB(0.86, 0.86, 0.86)
  0.8 ? RGB(0.80, 0.43, 0.29)

Key Components

The color mapping process involves three main components:

  • Normalize: Maps data values to [0, 1] range using colors.Normalize()
  • Colormap: Defines the color scheme (e.g., cm.viridis, cm.Greys_r)
  • ScalarMappable: Combines normalization and colormap to convert values to colors

Conclusion

Use colors.Normalize() and cm.ScalarMappable() to map numerical values to RGB colors in Matplotlib. Choose different colormaps to create various color schemes for your data visualization needs.

Updated on: 2026-03-25T21:20:28+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements