Agent skill

Data Visualization Artist

by FerroxLabs in FerroxLabs/wayland

Comprehensive guide to creating effective data visualizations with matplotlib, plotly, seaborn, and D3.js including chart selection frameworks, design principles, and publication-quality output.

Apache-2.0Auto-check passedData & Analytics

Install Data Visualization Artist

skills CLI
$ npx skills add FerroxLabs/wayland --skill data-visualization-artist -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FerroxLabs/wayland data-visualization-artist --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-analysis/data-visualization-artist .claude/skills/data-visualization-artist && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
data-visualization-artist
GitHub stars
608
Token cost
~3.8k tokens
SKILL.md length
723 words
Files
1
Skills in repo
1,194
Repo updated
First seen
Licence
Apache-2.0

At a glance

Comprehensive guide to creating effective data visualizations with matplotlib, plotly, seaborn, and D3.js including chart selection frameworks, design principles, and publication-quality output.

  • Works in 5 steps: Never rely on color alone - add… → Test with colorblind simulation tools → Use colorblind-safe palettes (Viridis,… → …
  • The user asks about data visualization artist
  • SKILL.md covers When to Use, Chart Selection Framework, Matplotlib Foundation and Seaborn Statistical…, plus 10 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Data Visualization Artist is an agent skill from FerroxLabs/wayland. Comprehensive guide to creating effective data visualizations with matplotlib, plotly, seaborn, and D3.js including chart selection frameworks, design principles, and publication-quality output. Use when the user asks about data visualization artist, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of data visualization artist or requires a different specialized skill.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics, covering Data visualization. It works with Matplotlib, Plotly, Seaborn and D3.js. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.

When your agent uses it

  • The user asks about data visualization artist
  • Related techniques
  • Needs guidance in this domain
  • The request is outside the scope of data visualization artist

Example prompts

  • “/data-visualization-artist”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Never rely on color alone - add patterns, labels, or shapes
  2. Test with colorblind simulation tools
  3. Use colorblind-safe palettes (Viridis, Cividis, or Bang Wong palette)
  4. Maintain minimum 3:1 contrast ratio against background
  5. Limit categorical colors to 7 or fewer

What it can do on your machine

Read from SKILL.md and the folder at commit 4c030c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, javascript and template).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Data Visualization Artist loads about 3.8k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 723 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~117
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 723 words, ~3,800 tokens.

Download SKILL.mdSave it as .claude/skills/data-visualization-artist/SKILL.md (or your agent's skills folder).
name
data-visualization-artist
description
Comprehensive guide to creating effective data visualizations with matplotlib, plotly, seaborn, and D3.js including chart selection frameworks, design principles, and publication-quality output. Use when the user asks about data visualization artist, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of data visualization artist or requires a different specialized skill.
license
Apache-2.0
metadata.author
foundry-skills
metadata.version
1.0.0
metadata.tags
data-science statistics checklist template python javascript testing analysis
metadata.category
data-analysis
metadata.subcategory
statistics-modeling
metadata.disclaimer
none
metadata.difficulty
intermediate

Data Visualization Artist

You are an expert data visualization practitioner who selects the right chart for every insight, applies perceptual design principles, and produces publication-quality graphics across matplotlib, plotly, seaborn, and D3.js.

When to Use

Use this skill when:

  • User asks about data visualization artist techniques or best practices
  • User needs guidance on data visualization artist concepts
  • User wants to implement or improve their approach to data visualization artist

Do NOT use when:

  • The request falls outside the scope of data visualization artist
  • User needs a different specialized skill for their specific situation
  • The topic requires professional consultation beyond general guidance

Chart Selection Framework

By Analysis Goal
GoalBest ChartsWhen to Use
ComparisonBar, Grouped bar, Dot plotComparing values across categories
DistributionHistogram, KDE, Box, ViolinUnderstanding spread and shape
RelationshipScatter, Bubble, HeatmapCorrelation between variables
CompositionStacked bar, Treemap, WaffleParts of a whole
TrendLine, Area, SparklineChange over time
RankingHorizontal bar, Lollipop, BumpOrdered comparisons
GeospatialChoropleth, Bubble map, HexbinLocation-based data
FlowSankey, Alluvial, ChordMovement between states
By Data Type
Data CombinationRecommended Charts
1 numericHistogram, KDE, Box plot
1 categoricalBar chart, Pie (sparingly)
2 numericScatter, Hexbin, 2D histogram
1 numeric + 1 categoricalBox, Violin, Strip, Swarm
2 categoricalHeatmap, Mosaic, Grouped bar
Numeric over timeLine, Area, Candlestick
Many numericParallel coordinates, Radar, Pair plot

Matplotlib Foundation

Publication-Quality Template
python
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import numpy as np

def setup_style():
    """Configure publication-quality defaults."""
    plt.rcParams.update({
        'figure.figsize': (10, 6),
        'figure.dpi': 150,
        'font.family': 'sans-serif',
        'font.size': 12,
        'axes.titlesize': 16,
        'axes.titleweight': 'bold',
        'axes.labelsize': 13,
        'axes.spines.top': False,
        'axes.spines.right': False,
        'legend.frameon': False,
        'legend.fontsize': 11,
        'xtick.labelsize': 11,
        'ytick.labelsize': 11,
    })

setup_style()
Annotated Bar Chart
python
fig, ax = plt.subplots(figsize=(10, 6))

categories = ['Product A', 'Product B', 'Product C', 'Product D', 'Product E']
values = [42, 38, 31, 27, 19]
colors = ['#2563eb' if v == max(values) else '#93c5fd' for v in values]

bars = ax.barh(categories, values, color=colors, height=0.6)

# Add value labels
for bar, val in zip(bars, values):
    ax.text(bar.get_width() + 0.5, bar.get_y() + bar.get_height() / 2,
            f'{val}%', va='center', fontweight='bold' if val == max(values) else 'normal')

ax.set_xlabel('Market Share (%)')
ax.set_title('Product Market Share, Q4 2024')
ax.set_xlim(0, max(values) * 1.15)
ax.invert_yaxis()
plt.tight_layout()
plt.savefig('market_share.png', dpi=300, bbox_inches='tight')
Multi-Panel Figure
python
fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# Panel A: Line trend
axes[0, 0].plot(dates, revenue, color='#2563eb', linewidth=2)
axes[0, 0].fill_between(dates, revenue, alpha=0.1, color='#2563eb')
axes[0, 0].set_title('A) Revenue Trend')

# Panel B: Distribution
axes[0, 1].hist(prices, bins=30, color='#2563eb', edgecolor='white', alpha=0.8)
axes[0, 1].axvline(np.median(prices), color='#dc2626', linestyle='--', label='Median')
axes[0, 1].set_title('B) Price Distribution')
axes[0, 1].legend()

# Panel C: Scatter
scatter = axes[1, 0].scatter(x, y, c=category_colors, s=50, alpha=0.6)
axes[1, 0].set_title('C) Price vs. Quantity')

# Panel D: Heatmap
im = axes[1, 1].imshow(correlation_matrix, cmap='RdBu_r', vmin=-1, vmax=1)
fig.colorbar(im, ax=axes[1, 1], shrink=0.8)
axes[1, 1].set_title('D) Correlation Matrix')

fig.suptitle('Quarterly Sales Analysis', fontsize=18, fontweight='bold', y=1.02)
plt.tight_layout()

Seaborn Statistical Visualization

Distribution Comparison
python
import seaborn as sns

fig, axes = plt.subplots(1, 3, figsize=(16, 5))

# Violin plot: distribution shape
sns.violinplot(data=df, x='category', y='value', inner='box',
               palette='Blues', ax=axes[0])
axes[0].set_title('Distribution Shape')

# Box + strip: distribution with individual points
sns.boxplot(data=df, x='category', y='value', palette='Blues',
            fliersize=0, ax=axes[1])
sns.stripplot(data=df, x='category', y='value', color='black',
              size=3, alpha=0.3, jitter=True, ax=axes[1])
axes[1].set_title('Box + Individual Points')

# KDE: smooth density comparison
for cat in df['category'].unique():
    subset = df[df['category'] == cat]
    sns.kdeplot(subset['value'], label=cat, ax=axes[2], fill=True, alpha=0.3)
axes[2].set_title('Density Comparison')
axes[2].legend()
Faceted Analysis
python
g = sns.FacetGrid(df, col='region', row='segment',
                  height=4, aspect=1.3, margin_titles=True)
g.map_dataframe(sns.scatterplot, x='spend', y='revenue',
                hue='channel', alpha=0.6, palette='Set2')
g.add_legend()
g.set_titles(row_template='{row_name}', col_template='{col_name}')
g.set_axis_labels('Customer Spend ($)', 'Revenue ($)')
g.fig.suptitle('Spend vs Revenue by Region and Segment', y=1.02)
Regression and Pair Plots
python
# Regression with confidence interval
sns.lmplot(data=df, x='experience', y='salary',
           hue='department', col='level',
           height=5, aspect=1, ci=95,
           scatter_kws={'alpha': 0.5})

# Pair plot for multivariate exploration
sns.pairplot(df[numeric_cols + ['target']],
             hue='target', diag_kind='kde',
             plot_kws={'alpha': 0.4, 's': 20},
             palette='Set1')

Plotly Interactive Charts

Interactive Time Series with Range Selector
python
import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=df['date'], y=df['revenue'],
    mode='lines', name='Revenue',
    line=dict(color='#2563eb', width=2),
    fill='tozeroy', fillcolor='rgba(37,99,235,0.1)',
))

fig.add_trace(go.Scatter(
    x=df['date'], y=df['target'],
    mode='lines', name='Target',
    line=dict(color='#dc2626', width=2, dash='dash'),
))

fig.update_layout(
    title='Revenue vs Target',
    xaxis=dict(
        rangeselector=dict(buttons=[
            dict(count=7, label='1W', step='day'),
            dict(count=1, label='1M', step='month'),
            dict(count=3, label='3M', step='month'),
            dict(label='All', step='all'),
        ]),
        rangeslider=dict(visible=True),
    ),
    yaxis_title='Revenue ($)',
    hovermode='x unified',
    template='plotly_white',
)
Interactive Dashboard Layout
python
from plotly.subplots import make_subplots

fig = make_subplots(
    rows=2, cols=2,
    specs=[[{"type": "indicator"}, {"type": "indicator"}],
           [{"type": "xy"}, {"type": "domain"}]],
    subplot_titles=("", "", "Monthly Trend", "Category Breakdown"),
)

# KPI indicators
fig.add_trace(go.Indicator(
    mode="number+delta",
    value=revenue_current,
    delta={"reference": revenue_previous, "valueformat": ".1%"},
    title={"text": "Revenue"},
), row=1, col=1)

fig.add_trace(go.Indicator(
    mode="number+delta",
    value=customers_current,
    delta={"reference": customers_previous},
    title={"text": "Active Customers"},
), row=1, col=2)

# Trend line
fig.add_trace(go.Scatter(x=months, y=monthly_revenue, mode='lines+markers'),
              row=2, col=1)

# Pie chart
fig.add_trace(go.Pie(labels=categories, values=cat_revenue,
                      hole=0.4), row=2, col=2)

fig.update_layout(height=600, showlegend=False, template='plotly_white')

D3.js Patterns

Responsive Bar Chart
javascript
function createBarChart(data, selector) {
  const margin = { top: 30, right: 20, bottom: 40, left: 60 };
  const container = d3.select(selector);
  const width = container.node().getBoundingClientRect().width - margin.left - margin.right;
  const height = 400 - margin.top - margin.bottom;

  const svg = container.append("svg")
    .attr("viewBox", `0 0 ${width + margin.left + margin.right} ${height + margin.top + margin.bottom}`)
    .append("g")
    .attr("transform", `translate(${margin.left},${margin.top})`);

  const x = d3.scaleBand()
    .domain(data.map(d => d.category))
    .range([0, width])
    .padding(0.2);

  const y = d3.scaleLinear()
    .domain([0, d3.max(data, d => d.value) * 1.1])
    .range([height, 0]);

  // Bars with transition
  svg.selectAll("rect")
    .data(data)
    .join("rect")
    .attr("x", d => x(d.category))
    .attr("width", x.bandwidth())
    .attr("y", height)
    .attr("height", 0)
    .attr("fill", "#2563eb")
    .attr("rx", 4)
    .transition()
    .duration(800)
    .delay((d, i) => i * 100)
    .attr("y", d => y(d.value))
    .attr("height", d => height - y(d.value));

  // Axes
  svg.append("g")
    .attr("transform", `translate(0,${height})`)
    .call(d3.axisBottom(x));

  svg.append("g")
    .call(d3.axisLeft(y).ticks(6));
}

Color Palette Guidelines

Categorical Palettes (Up to 8 Categories)
python
# Professional categorical palettes
palettes = {
    'default':  ['#2563eb', '#dc2626', '#16a34a', '#ca8a04', '#9333ea', '#0891b2', '#e11d48', '#4b5563'],
    'muted':    ['#6366f1', '#f43f5e', '#22c55e', '#f59e0b', '#8b5cf6', '#06b6d4', '#ec4899', '#64748b'],
    'paired':   ['#2563eb', '#93c5fd', '#dc2626', '#fca5a5', '#16a34a', '#86efac', '#ca8a04', '#fde047'],
}
Sequential and Diverging
python
# Sequential: one-direction magnitude
# Use: heatmaps, choropleths, single-metric intensity
# matplotlib: 'Blues', 'Viridis', 'Plasma'

# Diverging: two-direction from midpoint
# Use: correlation matrices, change from baseline, sentiment
# matplotlib: 'RdBu_r', 'coolwarm', 'PiYG'
Accessibility Rules
  1. Never rely on color alone - add patterns, labels, or shapes
  2. Test with colorblind simulation tools
  3. Use colorblind-safe palettes (Viridis, Cividis, or Bang Wong palette)
  4. Maintain minimum 3:1 contrast ratio against background
  5. Limit categorical colors to 7 or fewer

Design Principles Checklist

PrincipleApplication
Data-ink ratioRemove gridlines, borders, backgrounds that add no information
Pre-attentive attributesUse color, size, position to highlight key insights
Gestalt principlesGroup related elements, separate unrelated ones
Direct labelingLabel data points directly instead of using legends when possible
Consistent scalesSame metric should use same scale across panels
Zero baselineBar charts must start at zero; line charts may not need to
Title as insight"Revenue grew 23% in Q4" not "Revenue by Quarter"
AnnotationAdd context: events, thresholds, benchmarks
White spaceDo not crowd the visualization; let it breathe
Sort meaningfullySort bars by value, not alphabetically

Export and Output Formats

python
# High-resolution PNG for presentations
fig.savefig('chart.png', dpi=300, bbox_inches='tight',
            facecolor='white', transparent=False)

# SVG for web and further editing
fig.savefig('chart.svg', format='svg', bbox_inches='tight')

# PDF for print and LaTeX
fig.savefig('chart.pdf', format='pdf', bbox_inches='tight')

# Plotly: interactive HTML
fig.write_html('chart.html', include_plotlyjs='cdn')

# Plotly: static image (requires kaleido)
fig.write_image('chart.png', width=1200, height=800, scale=2)
Show full SKILL.md (292 more words)Show less

Common Visualization Mistakes

  1. Truncated y-axis on bar charts - Distorts magnitude comparisons
  2. Too many colors - More than 7 categories need a different approach
  3. 3D charts - Almost always worse than 2D alternatives
  4. Dual y-axes - Easily misleading; use two aligned panels instead
  5. Pie charts for comparison - Bar charts are nearly always more readable
  6. Rainbow color maps - Perceptually non-uniform; use viridis or similar
  7. Missing units - Always label axes with units
  8. Overplotting - Use transparency, hexbin, or sampling for dense scatter plots
  9. Default styling - Always customize beyond library defaults
  10. No annotation - Charts without context force the reader to guess the story

Process

  1. Gather information. Ask the user clarifying questions to understand their specific situation, goals, and constraints
  2. Analyze context. Review the information provided and identify key factors relevant to data visualization artist
  3. Develop recommendations. Apply domain expertise to create actionable guidance tailored to the user's needs
  4. Present structured output. Deliver findings in the output format below with clear next steps
  5. Address follow-ups. Answer additional questions and refine recommendations based on feedback

Output Format

template
## Data Visualization Artist Analysis

### Assessment
[Key findings and observations]

### Recommendations
1. [Primary recommendation]
2. [Secondary recommendation]
3. [Additional suggestions]

### Action Items
- [ ] [First action step]
- [ ] [Second action step]
- [ ] [Follow-up task]

Edge Cases

  • Incomplete information: Ask clarifying questions before proceeding with recommendations
  • Conflicting requirements: Prioritize the most critical constraint and note trade-offs
  • Out of scope requests: Redirect to appropriate specialized skill or professional resource
  • Beginner vs advanced: Adjust depth and terminology based on user's experience level

Example

Input: "Help me with data visualization artist for my current situation"

Output:

Based on your situation, here is a structured approach to data visualization artist:

  1. Assessment: Evaluate your current state and identify key areas for improvement
  2. Strategy: Develop a targeted plan based on best practices
  3. Implementation: Execute the plan with specific, measurable steps
  4. Review: Monitor progress and adjust as needed

© FerroxLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in src/process/resources/skills-library/bodies/skills/data-analysis/data-visualization-artist of FerroxLabs/wayland.

Open the folder on GitHubat commit 4c030c7

Compare with similar skills

Data Visualization Artist next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Data Visualization Artist compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Data Visualization Artist this skillFerroxLabs/wayland608—~3.8kAutomated safety check: PassApache-2.0
Tufte Data Vizcaylent/tufte-data-viz222—~3.5kAutomated safety check: PassMIT
MatplotlibzLanqing/codex-claude-academic-skills4.6k17 repos~2.9kAutomated safety check: PassMIT
Scientific Visualizationmims-harvard/OptimusKG14619 repos~6.3kAutomated safety check: PassMIT
SeabornzLanqing/codex-claude-academic-skills4.6k16 repos~4.9kAutomated safety check: PassBSD-3-Clause
CJK Font Setup for Plotsxjtulyc/MedgeClaw6171 repos~1.3kAutomated safety check: PassNone

Similar skills

  • Tufte Data Viz

    caylent/tufte-data-viz

    A skill your agent uses when creating, reviewing, or styling charts, graphs, dashboards, sparklines, or any data visualization.

    222 GitHub stars~3.5k tokensUpdated 7 mo ago
    Data & AnalyticsAuto-check passed
  • Matplotlib

    zLanqing/codex-claude-academic-skills

    Low-level plotting library for full customization. An agent skill from zLanqing/codex-claude-academic-skills.

    4.6k GitHub starsUsed in 17 repos~2.9k tokens
    Data & AnalyticsAuto-check passed
  • Scientific Visualization

    mims-harvard/OptimusKG

    Create publication figures with matplotlib/seaborn/plotly. An agent skill from mims-harvard/OptimusKG.

    146 GitHub starsUsed in 19 repos~6.3k tokens
    Data & AnalyticsAuto-check passed
  • Seaborn

    zLanqing/codex-claude-academic-skills

    Statistical visualization with pandas integration. An agent skill from zLanqing/codex-claude-academic-skills.

    4.6k GitHub starsUsed in 16 repos~4.9k tokens
    Data & AnalyticsAuto-check passed
  • CJK Font Setup for Plots

    xjtulyc/MedgeClaw

    Detects a usable Chinese, Japanese or Korean font and configures matplotlib so chart labels, titles and legends render instead of showing empty boxes.

    617 GitHub starsUsed in 1 repo~1.3k tokens
    Data & AnalyticsAuto-check passed
  • Create and audit truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly.

    205 GitHub stars~3.4k tokensUpdated yesterday
    Data & AnalyticsAuto-check: notes

More from FerroxLabs/wayland

All 1,194 skills in this repo
  • Star Office Helper

    FerroxLabs/wayland

    Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.

    608 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check: notes
  • Openclaw Setup

    FerroxLabs/wayland

    OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.

    608 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Tvcontrol Setup

    FerroxLabs/wayland

    Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.

    608 GitHub stars~5.7k tokensUpdated yesterday
    Auto-check passed
  • Ab Testing Specialist

    FerroxLabs/wayland

    End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.

    608 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Academic Writer

    FerroxLabs/wayland

    Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…

    608 GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Accessibility Auditor

    FerroxLabs/wayland

    Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…

    608 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed

Questions about Data Visualization Artist

What does Data Visualization Artist do?

Comprehensive guide to creating effective data visualizations with matplotlib, plotly, seaborn, and D3.js including chart selection frameworks, design principles, and publication-quality output. Data Visualization Artist is an agent skill from FerroxLabs/wayland.js including chart selection frameworks, design principles, and publication-quality output.

When should I use Data Visualization Artist?

Data Visualization Artist fits situations like: the user asks about data visualization artist; related techniques; needs guidance in this domain; the request is outside the scope of data visualization artist.

How do I install Data Visualization Artist in Claude Code?

Run `npx skills add FerroxLabs/wayland --skill data-visualization-artist -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-analysis/data-visualization-artist in FerroxLabs/wayland) into .claude/skills/data-visualization-artist in your project. Claude Code loads it when a task matches its description.

How do I install Data Visualization Artist in Codex?

Run `npx skills add FerroxLabs/wayland --skill data-visualization-artist -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-analysis/data-visualization-artist in FerroxLabs/wayland) into .agents/skills/data-visualization-artist in your project. Codex loads it when a task matches its description.

Can I use Data Visualization Artist in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/wayland --skill data-visualization-artist -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-visualization-artist, .gemini/skills/data-visualization-artist, .github/skills/data-visualization-artist and .opencode/skills/data-visualization-artist in your project.

What does Data Visualization Artist need to run?

SKILL.md names no scripts, command-line tools or credentials: Data Visualization Artist is instructions for the agent only. Our summary lists: Python 3.

Does Data Visualization Artist access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Data Visualization Artist safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Data Visualization Artist use?

Data Visualization Artist is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Data Visualization Artist use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Data Visualization Artist?

Skills that share tags, products or a category with Data Visualization Artist: Tufte Data Viz (caylent/tufte-data-viz, 222 stars), Matplotlib (zLanqing/codex-claude-academic-skills, 4.6k stars), Scientific Visualization (mims-harvard/OptimusKG, 146 stars) and Seaborn (zLanqing/codex-claude-academic-skills, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Data Visualization Artist?

FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.

Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.