Scatter a 2D numpy array in matplotlib

Creating scatter plots from 2D NumPy arrays is a common visualization task in data analysis. Matplotlib's scatter() function can effectively plot multi-dimensional data using different columns for x, y coordinates, and colors.

Basic Scatter Plot from 2D Array

Let's start with a simple example using the first two columns of a 2D array ?

import numpy as np
import matplotlib.pyplot as plt

# Create a 2D array with random data
data = np.random.random((50, 3))

# Scatter plot using first two columns
plt.figure(figsize=(8, 6))
plt.scatter(data[:, 0], data[:, 1])
plt.xlabel('X values (Column 0)')
plt.ylabel('Y values (Column 1)')
plt.title('Basic 2D Scatter Plot')
plt.show()

Color-Coded Scatter Plot

Use the third column to add color information to the scatter plot ?

import numpy as np
import matplotlib.pyplot as plt

# Create random data of 100×3 dimension
data = np.random.random((100, 3))

# Scatter plot with color mapping
plt.figure(figsize=(8, 6))
scatter = plt.scatter(data[:, 0], data[:, 1], c=data[:, 2], cmap='viridis', alpha=0.7)
plt.colorbar(scatter, label='Color values (Column 2)')
plt.xlabel('X values (Column 0)')
plt.ylabel('Y values (Column 1)')
plt.title('Color-Coded Scatter Plot from 2D Array')
plt.show()

Multiple Scatter Plots

Create subplots to visualize different combinations of columns ?

import numpy as np
import matplotlib.pyplot as plt

# Generate sample data with 4 columns
data = np.random.randn(80, 4)

# Create subplots
fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# First subplot: columns 0 vs 1
axes[0].scatter(data[:, 0], data[:, 1], alpha=0.6, color='blue')
axes[0].set_xlabel('Column 0')
axes[0].set_ylabel('Column 1')
axes[0].set_title('Column 0 vs Column 1')

# Second subplot: columns 2 vs 3
axes[1].scatter(data[:, 2], data[:, 3], alpha=0.6, color='red')
axes[1].set_xlabel('Column 2')
axes[1].set_ylabel('Column 3')
axes[1].set_title('Column 2 vs Column 3')

plt.tight_layout()
plt.show()

Customizing Scatter Plot Properties

Add various visual enhancements like size variation and transparency ?

import numpy as np
import matplotlib.pyplot as plt

# Create structured data
np.random.seed(42)
data = np.random.random((60, 4))

# Create scatter plot with customized properties
plt.figure(figsize=(10, 8))
scatter = plt.scatter(
    data[:, 0], data[:, 1],           # x, y coordinates
    c=data[:, 2],                     # color values
    s=data[:, 3] * 200,              # size values
    cmap='plasma',                    # colormap
    alpha=0.7,                        # transparency
    edgecolors='black',               # edge color
    linewidths=0.5                    # edge width
)

plt.colorbar(scatter, label='Color intensity')
plt.xlabel('X coordinates')
plt.ylabel('Y coordinates')
plt.title('Customized Scatter Plot with Size and Color Variation')
plt.grid(True, alpha=0.3)
plt.show()

Key Parameters

Parameter Description Example
c Color values c=data[:, 2]
s Size values s=data[:, 3] * 100
cmap Color map cmap='viridis'
alpha Transparency alpha=0.7

Conclusion

Matplotlib's scatter() function provides flexible options for visualizing 2D NumPy arrays. Use different columns for x-y coordinates, colors, and sizes to create informative multi-dimensional visualizations.

Updated on: 2026-03-26T19:06:59+05:30

23K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements