Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
