Back to Skills

data-visualization

verified

Master advanced declarative visualization with HoloViews. Use this skill when creating complex multi-dimensional visualizations, composing overlays and layouts, implementing interactive streams and selection, building network or hierarchical visualizations, or exploring data with dynamic maps and faceted displays.

View on GitHub

Marketplace

rse-plugins

uw-ssec/rse-plugins

Plugin

holoviz-visualization

data-science

Repository

uw-ssec/rse-plugins
10stars

community-plugins/holoviz-visualization/skills/data-visualization/SKILL.md

Last Verified

January 22, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/uw-ssec/rse-plugins/blob/main/community-plugins/holoviz-visualization/skills/data-visualization/SKILL.md -a claude-code --skill data-visualization

Installation paths:

Claude
.claude/skills/data-visualization/
Powered by add-skill CLI

Instructions

# Data Visualization Skill

## Overview

Master advanced declarative visualization with HoloViews and composition patterns. This skill covers sophisticated visualization techniques for complex data exploration and presentation.

## Dependencies

- holoviews >= 1.18.0
- pandas >= 1.0.0
- numpy >= 1.15.0
- bokeh >= 3.0.0
- networkx >= 2.0.0 (for network visualizations)

## Core Capabilities

### 1. Advanced Element Composition

HoloViews allows sophisticated composition of visualization elements:

```python
import holoviews as hv
from holoviews import opts
import pandas as pd
import numpy as np

# Create overlaid elements
curve = hv.Curve(df, 'x', 'y', label='Measured')
scatter = hv.Scatter(df_with_noise, 'x', 'y', label='Noisy')
overlay = curve * scatter  # Multiplication overlays

# Create layouts
col_layout = hv.Column(plot1, plot2, plot3)
row_layout = hv.Row(plot1, plot2, plot3)
grid_layout = hv.GridMatrix(data_dict)

# Faceted displays
faceted = hv.Curve(df, 'date', 'value').facet('category')

# Nested layouts
complex_layout = hv.Column(
    hv.Row(plot1, plot2),
    hv.Row(plot3, plot4),
    hv.Row(plot5, plot6)
)
```

### 2. Interactive Streams and Selection

Create responsive visualizations with interactive selection:

```python
from holoviews import streams

# Selection stream
range_stream = streams.RangeXY()
scatter = hv.Scatter(df, 'x', 'y').opts(tools=['box_select'])

@hv.transform
def selected_data(data):
    if range_stream.selection:
        x0, x1 = range_stream.selection[0], range_stream.selection[1]
        y0, y1 = range_stream.selection[2], range_stream.selection[3]
        mask = (data['x'] >= x0) & (data['x'] <= x1) & \
               (data['y'] >= y0) & (data['y'] <= y1)
        return data[mask]
    return data

histogram = selected_data.to(hv.Histogram)
scatter_with_hist = scatter + histogram
```

### 3. Dynamic Maps for Responsive Visualization

```python
# Dynamic updating based on parameters
from holoviews import DynamicMap, streams

def pl

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
8913 chars