BI

bio-data-visualization-color-palettes

Guidance on selecting accessible, colorblind-friendly palettes for biological and scientific data plotting.

Install

mkdir -p .claude/skills/bio-data-visualization-color-palettes && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11363" && unzip -o skill.zip -d .claude/skills/bio-data-visualization-color-palettes && rm skill.zip

Installs to .claude/skills/bio-data-visualization-color-palettes

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Select and apply colorblind-friendly palettes for scientific figures using viridis, RColorBrewer, and custom color schemes. Use when selecting colorblind-friendly palettes for figures.
184 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Select color palettes
  • Ensure accessibility
  • Apply scientific schemes
  • Simulate colorblindness

How it works

It recommends palettes based on data type (sequential, diverging, qualitative) and verifies accessibility.

Inputs & outputs

You give it
Data type and visualization goal
You get back
Color palette recommendation

When to use bio-data-visualization-color-palettes

  • Choosing scientific palettes
  • Ensuring colorblind accessibility
  • Plotting biological data

About this skill

Version Compatibility

Reference examples tested with: ggplot2 3.5+, matplotlib 3.8+, seaborn 0.13+

Before using code patterns, verify installed versions match. If versions differ:

  • Python: pip show <package> then help(module.function) to check signatures
  • R: packageVersion('<pkg>') then ?function_name to verify parameters

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

Color Palettes

"Choose colors for a biological visualization" → Select appropriate color palettes for sequential data (expression levels), diverging data (fold changes), or categorical data (cell types/clusters).

  • Python: seaborn.color_palette(), matplotlib.colormaps
  • R: RColorBrewer::brewer.pal(), viridis::viridis()

Palette Types

TypeUse CaseExample
SequentialContinuous data (expression, coverage)viridis, Blues
DivergingCentered data (fold change, z-score)RdBu, coolwarm
QualitativeCategories (clusters, conditions)Set1, tab10

viridis (Colorblind-Safe)

library(viridis)

# Continuous scale
ggplot(df, aes(x, y, color = value)) +
    geom_point() +
    scale_color_viridis_c()

# Discrete scale
ggplot(df, aes(x, y, color = group)) +
    geom_point() +
    scale_color_viridis_d()

# Options: viridis, magma, plasma, inferno, cividis, turbo
scale_color_viridis_c(option = 'magma')
import matplotlib.pyplot as plt

plt.scatter(x, y, c=values, cmap='viridis')
# Options: viridis, magma, plasma, inferno, cividis

RColorBrewer (R)

library(RColorBrewer)

# View all palettes
display.brewer.all()

# Sequential
scale_fill_brewer(palette = 'Blues')
scale_color_distiller(palette = 'YlOrRd', direction = 1)

# Diverging
scale_fill_brewer(palette = 'RdBu')
scale_color_gradient2(low = '#4DBBD5', mid = 'white', high = '#E64B35', midpoint = 0)

# Qualitative
scale_color_brewer(palette = 'Set1')
scale_fill_brewer(palette = 'Dark2')

# Get colors directly
brewer.pal(n = 5, name = 'Set1')

matplotlib/seaborn (Python)

import matplotlib.pyplot as plt
import seaborn as sns

# Sequential
plt.scatter(x, y, c=values, cmap='Blues')

# Diverging
plt.scatter(x, y, c=values, cmap='RdBu_r', vmin=-2, vmax=2)

# Qualitative
palette = sns.color_palette('Set1', n_colors=5)
sns.scatterplot(x=x, y=y, hue=group, palette='Set1')

# Custom palette
custom_palette = {'Control': '#4DBBD5', 'Treatment': '#E64B35'}
sns.scatterplot(x=x, y=y, hue=group, palette=custom_palette)

Scientific Journal Palettes

library(ggsci)

# Nature Publishing Group
scale_color_npg()
scale_fill_npg()

# AAAS Science
scale_color_aaas()

# Lancet
scale_color_lancet()

# JAMA
scale_color_jama()

# JCO
scale_color_jco()

Custom Palettes

# Define custom colors
my_colors <- c(
    'Control' = '#4DBBD5',
    'Treatment' = '#E64B35',
    'Vehicle' = '#00A087'
)

scale_color_manual(values = my_colors)
scale_fill_manual(values = my_colors)

# Create gradient
colorRampPalette(c('blue', 'white', 'red'))(100)
from matplotlib.colors import LinearSegmentedColormap

colors = ['#4DBBD5', 'white', '#E64B35']
cmap = LinearSegmentedColormap.from_list('custom_diverging', colors)
plt.imshow(data, cmap=cmap)

Heatmap Colors

library(circlize)

# For ComplexHeatmap
col_fun <- colorRamp2(c(-2, 0, 2), c('#4DBBD5', 'white', '#E64B35'))

# For pheatmap
pheatmap(mat, color = colorRampPalette(rev(brewer.pal(9, 'RdBu')))(100))
import seaborn as sns

sns.heatmap(data, cmap='RdBu_r', center=0, vmin=-2, vmax=2)

Colorblind Simulation

Goal: Verify that a chosen palette remains distinguishable under common forms of color vision deficiency.

Approach: Use the colorspace package to simulate deuteranopia and protanopia transformations on the palette colors and visually inspect the result.

library(colorspace)

# Check if palette is colorblind safe
demoplot(rainbow(5), type = 'map')
demoplot(viridis(5), type = 'map')

# Simulate colorblindness
cvd_colors <- deutan(c('#E64B35', '#4DBBD5', '#00A087'))  # deuteranopia
cvd_colors <- protan(c('#E64B35', '#4DBBD5', '#00A087'))  # protanopia

Recommended Palettes

Data TypeRecommendedAvoid
Expression heatmapRdBu (diverging)Rainbow
Categories (<8)Set1, Dark2, npgToo many colors
Categories (>8)tab20, PairedQualitative sets
Continuousviridis, plasmaJet, rainbow
p-valuesviridis (reversed)Red-green

Transparency

# Add alpha
scale_color_manual(values = alpha(c('#E64B35', '#4DBBD5'), 0.7))

# In geom
geom_point(alpha = 0.6)
# Add alpha to hex
def add_alpha(hex_color, alpha):
    return hex_color + format(int(alpha * 255), '02x')

color_with_alpha = add_alpha('#E64B35', 0.7)

# In scatter
plt.scatter(x, y, c='#E64B35', alpha=0.7)

Extract Colors from Palette

# Get discrete colors
pal <- brewer.pal(8, 'Set1')
pal[1:3]  # First 3 colors

# Interpolate more colors
colorRampPalette(brewer.pal(8, 'Set1'))(20)
import seaborn as sns

palette = sns.color_palette('Set1', n_colors=8)
palette[:3]  # First 3 colors

# As hex
palette.as_hex()

Related Skills

  • data-visualization/ggplot2-fundamentals - Apply colors
  • data-visualization/heatmaps-clustering - Heatmap colors
  • data-visualization/specialized-omics-plots - Plot styling

When not to use it

  • Non-scientific figures
  • When color is not required

Prerequisites

ggplot2 or matplotlib

Limitations

  • Limited to scientific palettes
  • Requires package compatibility

How it compares

It focuses on scientific accessibility standards rather than aesthetic preference.

Compared to similar skills

bio-data-visualization-color-palettes side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
bio-data-visualization-color-palettes (this skill)04moNo flagsBeginner
visualization04moReviewIntermediate
beamer-ppt04moReviewBeginner
academic-plotting03moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

visualization

NNNightglow

构建并路由 A 股可视化任务到 `utils/visualizers` 与 `utils/visualizer_manager.py` 的正确图表管线。用于用户请求个股、指数、板块、市场情绪或模型结果图表,且需要判断所需输入字段、方法选择与输出格式(嵌入式 HTML 或 ECharts 选项)。

00

beamer-ppt

zhouziyue233

Create Beamer-style academic PPTX presentations using python-pptx. Produces publication-quality .pptx files with navy-blue Metropolis theme (16:9, frame title bars, progress bar) for conference talks, job market presentations, and seminar slides. Called by /present command.

00

academic-plotting

Supporter09

Generates publication-quality figures for ML papers from research context. Given a paper section or description, extracts system components and relationships to generate architecture diagrams via Gemini. Given experiment results or data, auto-selects chart type and generates data-driven figures via

00

bio-data-visualization-color-palettes

FridrichMethod

Select colormaps and qualitative palettes for scientific figures using perceptual-uniformity, color-vision-deficiency safety, and luminance-monotonicity criteria. Covers Crameri scientific colormaps, viridis/cividis/magma, Okabe-Ito categorical, ColorBrewer, and the rainbow/jet critique. Use when ch

00

dashboard-view-builder

gitwalter

Building and managing premium statistical dashboards, RAG explorer UIs, warehouse log monitors, and real-time visualization centers.

00

streamlit

sverzijl

When working with Streamlit web apps, data dashboards, ML/AI app UIs, interactive Python visualizations, or building data science applications with Python

86239

Search skills

Search the agent skills registry