home/skills/design/office-chart-designer

Chart Designer

Claude Office Skills

Design data visualizations and charts for reports and presentations.

๐ŸŸข pass (100)skillDesigndesigngithubSource โ†’skill.md โ†’
chartsvisualizationdata
# 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

```markdown
# Chart Design: [Title]

**Data Type**: [Description]
**Purpose**: [What story to tell]
**Recommended Chart**: [Chart type]

---

## Chart Configuration

### ECharts

```javascript
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

```javascript
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

1. [Practice 1]
2. [Practice 2]
3. [Practice 3]

---

## Alternative Charts

If this doesn't work well, consider:
1. [Alternative 1] - when [condition]
2. [Alternative 2] - when [condition]
```

---

## ECharts Common Configurations

### Bar Chart
```javascript
{
  xAxis: { type: 'category', data: categories },
  yAxis: { type: 'value' },
  series: [{
    type: 'bar',
    data: values,
    itemStyle: { color: '#5470c6' }
  }]
}
```

### Line Chart
```javascript
{
  xAxis: { type: 'category', data: categories },
  yAxis: { type: 'value' },
  series: [{
    type: 'line',
    data: values,
    smooth: true,
    areaStyle: {} // for area chart
  }]
}
```

### Pie Chart
```javascript
{
  series: [{
    type: 'pie',
    radius: ['40%', '70%'], // donut
    data: [
      { value: 100, name: 'A' },
      { value: 200, name: 'B' }
    ]
  }]
}
```

### Scatter Plot
```javascript
{
  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

1. **Know your audience** - technical vs. executive
2. **Start with the question** - what are you trying to answer?
3. **Choose the right chart** - don't force data into wrong formats
4. **Simplify** - less is more
5. **Label clearly** - assume viewers have no context
6. **Test with real users** - is the message clear?
7. **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!*
๐Ÿงช Found this useful?
The $SKILL experiment is building the agent skill distribution layer. Every skill you discover through this directory is part of the experiment.