Menu

Statistical
Static
34 Python scripts generated for heatmap this week

Heatmap

Chart overview

Heatmaps use color intensity to visualize values in a matrix, making patterns immediately visible.

Key points

  • They are the standard for visualizing correlation matrices in data science, allowing you to instantly spot relationships between multiple variables.
  • Beyond correlations, heatmaps are essential for visualizing gene expression, confusion matrices, and any 2D density data.

Example Visualization

Correlation heatmap with diverging color scale and coefficient annotations

Create This Chart Now

Generate publication-ready heatmaps with AI in seconds. No coding required – just describe your data and let AI do the work.

View example prompt
Example AI Prompt

"Create a heatmap showing the correlation matrix for 8 financial metrics: 'Revenue', 'Profit', 'Expenses', 'ROI', 'Customer Count', 'Avg Order Value', 'Marketing Spend', 'Employee Count'. Generate realistic correlation data where logically related metrics are positively correlated (Revenue-Profit: 0.85, Marketing-Revenue: 0.72) and others have weak or negative correlations (Expenses-Profit: -0.45). Use a diverging RdBu colorscale centered at zero (-1 to +1 range). Display correlation coefficients inside each cell with 2 decimal places. Mask the upper triangle to avoid redundancy. Add clear axis labels, a color bar, and title 'Financial Metrics Correlation Matrix'."

How to create this chart in 30 seconds

1

Upload Data

Drag & drop your Excel or CSV file. Plotivy securely processes it in your browser.

2

AI Generation

Our AI analyzes your data and generates the Heatmap code automatically.

3

Customize & Export

Tweak the design with natural language, then export as high-res PNG, SVG or PDF.

Python Code Example

example.py
# === IMPORTS ===
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# === USER-EDITABLE PARAMETERS ===
# DataFrame to use (replace with your own if needed)
df = None  # Change: Set to your DataFrame if not generating example data

# Example dataset parameters (used if df is None)
n_samples = 200  # Change: Number of rows in the example dataset
n_features = 6   # Change: Number of variables in the example dataset
random_seed = 42  # Change: Seed for reproducibility

# Plotting parameters
figsize = (8, 6)          # Change: Figure size (width, height) in inches
title = "Correlation Matrix Heatmap: Strong Positive & Negative Relationships"  # Change: Insight-driven title
cmap = "RdBu"             # Change: Diverging colormap (e.g., 'RdBu', 'coolwarm')
annot = True              # Change: Show correlation coefficients
fmt = ".2f"               # Change: Format for annotation numbers
center = 0                # Change: Center value for diverging colormap
linewidths = 0.5          # Change: Width of lines between cells
cbar_shrink = 0.8         # Change: Shrink factor for colorbar
title_fontsize = 18       # Change: Font size for title
label_fontsize = 16       # Change: Font size for axis labels and ticks

# === END-OF-CODE ===

# === Data preparation ===
# If no DataFrame provided, generate a synthetic example dataset
if df is None:
    np.random.seed(random_seed)
    # Create random data with some correlations
    rng = np.random.default_rng(random_seed)
    # Generate base random matrix
    base = rng.standard_normal(size=(n_samples, n_features))
    # Introduce correlations by linear combinations
    df = pd.DataFrame(base, columns=[f"Var{i+1}" for i in range(n_features)])
    # Add a positive correlation between Var1 and Var2
    df["Var2"] = df["Var1"] * 0.8 + rng.standard_normal(n_samples) * 0.2
    # Add a negative correlation between Var3 and Var4
    df["Var4"] = -df["Var3"] * 0.6 + rng.standard_normal(n_samples) * 0.4

# Compute correlation matrix
try:
    corr_matrix = df.corr()
except Exception as e:
    print(f"Error computing correlation matrix: {e}")
    corr_matrix = pd.DataFrame()

# Print correlation matrix for reference
print("Correlation matrix:")
print(corr_matrix)

# Print maximum absolute correlation (excluding diagonal)
if not corr_matrix.empty:
    max_corr = corr_matrix.where(~np.eye(corr_matrix.shape[0], dtype=bool)).abs().max().max()
    print(f"Maximum absolute correlation (excluding diagonal): {max_corr:.2f}")

# === Create plot ===
fig, ax = plt.subplots(figsize=figsize)

# Plot heatmap
sns.heatmap(
    corr_matrix,
    cmap=cmap,
    center=center,
    annot=annot,
    fmt=fmt,
    square=True,
    linewidths=linewidths,
    cbar_kws={"shrink": cbar_shrink},
    ax=ax
)

# Set title and adjust font sizes
ax.set_title(title, fontsize=title_fontsize, pad=12)
ax.tick_params(labelsize=label_fontsize)

# Adjust layout to avoid clipping
plt.subplots_adjust(top=0.90, bottom=0.12, left=0.12, right=0.95)
plt.tight_layout()

# Assign figure to variable for consistency
fig = ax.figure

# Show plot
plt.show()
# END-OF-CODE

Opens the Analyze page with this code pre-loaded and ready to execute

Console Output

Output
Strong Positive Correlations (>0.7):
  Revenue - Profit: 0.85
  Revenue - Customers: 0.88
  Profit - ROI: 0.92
  Revenue - Marketing: 0.72
  Customers - AOV: 0.72

Strong Negative Correlations (<-0.4):
  Revenue - Expenses: -0.45
  Profit - Expenses: -0.78
  Expenses - ROI: -0.65

Common Use Cases

  • 1Correlation analysis between variables
  • 2Website user behavior patterns
  • 3Gene expression analysis
  • 4Sales by region and time

Pro Tips

Use diverging color scales for data with meaningful center

Annotate cells with values for precise reading

Consider clustering rows/columns for pattern discovery

Free Cheat Sheet

Scientific Chart Selection Cheat Sheet

Not sure whether to use a Violin Plot, Box Plot, or Ridge Plot? Download our single-page reference mapping the most-used scientific chart types, exactly when to use them, and the core Matplotlib/Seaborn functions.

Comparison Charts
Distribution Charts
Time Series Data
Common Mistakes
No spam. Unsubscribe anytime.