chart-designer

Design effective data visualizations and charts. Generate chart configurations for ECharts, Chart.js, and other libraries. Create dashboards and reports.

INSTALLATION
npx skills add https://github.com/claude-office-skills/skills --skill chart-designer
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Chart Designer Skill

Overview

I help you design effective data visualizations by recommending the right chart types, generating configurations for popular charting libraries, and applying data visualization best practices.

What I can do:

  • Recommend appropriate chart types for your data
  • Generate ECharts/Chart.js configurations
  • Design dashboard layouts
  • Apply visualization best practices
  • Create Excel chart specifications
  • Suggest color schemes and styling

What I cannot do:

  • Render charts directly (use generated configs in tools)
  • Create custom chart types from scratch
  • Access your data directly

How to Use Me

Step 1: Describe Your Data

Tell me:

  • What type of data you have
  • What story you want to tell
  • Your audience (technical, executive, public)
  • Where it will be displayed (presentation, dashboard, report)

Step 2: Get Recommendations

I'll suggest:

  • Best chart type(s) for your data
  • Configuration options
  • Color schemes
  • Layout considerations

Step 3: Receive Chart Configs

I'll provide:

  • ECharts JSON configuration
  • Chart.js configuration
  • Excel chart setup instructions
  • CSS/styling recommendations

Chart Selection Guide

Comparison Charts

Chart Type

Best For

Data Requirements

Bar Chart

Comparing categories

Categories + values

Grouped Bar

Multiple series comparison

Categories + multiple series

Stacked Bar

Part-to-whole comparison

Categories + component values

Trend Charts

Chart Type

Best For

Data Requirements

Line Chart

Change over time

Time series data

Area Chart

Cumulative trends

Time series (stacked optional)

Sparkline

Compact trends

Simple time series

Distribution Charts

Chart Type

Best For

Data Requirements

Histogram

Value distribution

Numeric values

Box Plot

Distribution summary

Numeric values with quartiles

Scatter Plot

Correlation

Two numeric variables

Part-to-Whole Charts

Chart Type

Best For

Data Requirements

Pie Chart

Simple proportions (≤5 items)

Categories + percentages

Donut Chart

Proportions with total

Categories + percentages

Treemap

Hierarchical proportions

Hierarchical data + values

Specialized Charts

Chart Type

Best For

Data Requirements

Funnel

Process stages/conversion

Stages + values

Gauge

Single KPI vs target

Current value + target

Heatmap

Matrix comparisons

Row + Column + Value

Radar

Multi-dimensional comparison

Multiple metrics per item

Sankey

Flow/transitions

Source + Target + Value

Decision Tree

What do you want to show?

│

├─ Comparison

│   ├─ Among items → Bar Chart

│   ├─ Over time → Line Chart

│   └─ Multiple series → Grouped/Stacked Bar

│

├─ Composition

│   ├─ Static → Pie/Donut (≤5) or Treemap

│   ├─ Over time → Stacked Area

│   └─ Hierarchical → Treemap/Sunburst

│

├─ Distribution

│   ├─ Single variable → Histogram

│   ├─ Multiple datasets → Box Plot

│   └─ Two variables → Scatter Plot

│

├─ Relationship

│   ├─ Two variables → Scatter Plot

│   ├─ Three variables → Bubble Chart

│   └─ Correlation matrix → Heatmap

│

└─ Flow/Process

    ├─ Sequential stages → Funnel

    ├─ Transitions → Sankey

    └─ Single metric → Gauge

Output Format

# Chart Design: [Title]

**Data Type**: [Description]

**Purpose**: [What story to tell]

**Recommended Chart**: [Chart type]

---

## Chart Configuration

### ECharts

const option = {

title: {

text: 'Chart Title',

left: 'center'

},

tooltip: {

trigger: 'axis'

},

legend: {

data: ['Series 1', 'Series 2'],

bottom: 10

},

xAxis: {

type: 'category',

data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']

},

yAxis: {

type: 'value'

},

series: [

{

name: 'Series 1',

type: 'bar',

data: [120, 200, 150, 80, 70, 110]

},

{

name: 'Series 2',

type: 'line',

data: [100, 180, 160, 90, 80, 100]

}

]

};


### Chart.js

const config = {

type: 'bar',

data: {

labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],

datasets: [{

label: 'Series 1',

data: [120, 200, 150, 80, 70, 110],

backgroundColor: 'rgba(54, 162, 235, 0.8)'

}]

},

options: {

responsive: true,

plugins: {

title: {

display: true,

text: 'Chart Title'

}

}

}

};


## Styling Recommendations

### Color Palette

- Primary: `#5470c6`

- Secondary: `#91cc75`

- Accent: `#fac858`

- Neutral: `#73c0de`

### Typography

- Title: 16px, bold

- Labels: 12px, regular

- Axis: 11px, light

## Best Practices Applied

- [Practice 1]

- [Practice 2]

- [Practice 3]

## Alternative Charts

If this doesn't work well, consider:

- [Alternative 1] - when [condition]

- [Alternative 2] - when [condition]

---

ECharts Common Configurations

Bar Chart


{

  xAxis: { type: 'category', data: categories },

  yAxis: { type: 'value' },

  series: [{

    type: 'bar',

    data: values,

    itemStyle: { color: '#5470c6' }

  }]

}

Line Chart

{

  xAxis: { type: 'category', data: categories },

  yAxis: { type: 'value' },

  series: [{

    type: 'line',

    data: values,

    smooth: true,

    areaStyle: {} // for area chart

  }]

}

Pie Chart

{

  series: [{

    type: 'pie',

    radius: ['40%', '70%'], // donut

    data: [

      { value: 100, name: 'A' },

      { value: 200, name: 'B' }

    ]

  }]

}

Scatter Plot

{

  xAxis: { type: 'value' },

  yAxis: { type: 'value' },

  series: [{

    type: 'scatter',

    data: [[x1, y1], [x2, y2]],

    symbolSize: 10

  }]

}

Color Palettes

Professional

#5470c6, #91cc75, #fac858, #ee6666, #73c0de, #3ba272, #fc8452, #9a60b4

Cool

#1f77b4, #aec7e8, #17becf, #9edae5, #6baed6, #c6dbef, #08519c, #3182bd

Warm

#ff7f0e, #ffbb78, #d62728, #ff9896, #e377c2, #f7b6d2, #bcbd22, #dbdb8d

Accessible (colorblind-friendly)

#0077BB, #33BBEE, #009988, #EE7733, #CC3311, #EE3377, #BBBBBB

Best Practices

Data Ink Ratio

  • Remove unnecessary gridlines
  • Minimize chart junk
  • Let data be the focus

Clarity

  • Clear, descriptive titles
  • Labeled axes with units
  • Appropriate precision (not too many decimals)

Comparison

  • Start y-axis at zero for bar charts
  • Use consistent scales for comparison
  • Sort data logically

Color

  • Use color purposefully
  • Consider colorblind users
  • Don't use too many colors (≤7)

Interaction

  • Tooltips for details
  • Zoom for dense data
  • Drill-down for hierarchies

Tips for Better Charts

  • Know your audience - technical vs. executive
  • Start with the question - what are you trying to answer?
  • Choose the right chart - don't force data into wrong formats
  • Simplify - less is more
  • Label clearly - assume viewers have no context
  • Test with real users - is the message clear?
  • Consider accessibility - colors, contrast, alt text

Limitations

  • Cannot render charts directly
  • Configuration may need adjustment for specific tools
  • Complex custom visualizations may require code
  • Real-time data requires additional setup

Built by the Claude Office Skills community. Contributions welcome!

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card