Skill Tracer
Skills › Knowledge Work Plugins › create-viz

create-viz

skill · 154 lines · Apache-2.0 · data/skills/create-viz/SKILL.md

The facts

Its description

Create publication-quality visualizations with Python. Use when turning query results or a DataFrame into a chart, selecting the right chart type for a trend or comparison, generating a plot for a report or presentation, or needing an interactive chart with hover and zoom.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

A person who wants data turned into a picture — query results, a pasted table, or a DataFrame — or who asks which chart type suits a trend or comparison, would make the agent pick this skill. It also fires when someone wants an interactive chart with hover and zoom, or a plot destined for a report or presentation.

Things a person might say (the model's guesses)

  • “Turn these query results into a line chart of monthly revenue.”
  • “What's the best chart to show our NPS by product?”
  • “Make me an interactive chart of order volume by day of week and hour.”

A model's summary of when it is used.

A model's reading

What it takes when started

<data source> [chart type]

What to type after its name when you start it.

From its settingsline 4

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

Licence

Apache-2.0, from data/LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: create-viz
3description: Create publication-quality visualizations with Python. Use when turning query results or a DataFrame into a chart, selecting the right chart type for a trend or comparison, generating a plot for a report or presentation, or needing an interactive chart with hover and zoom.
4argument-hint: "<data source> [chart type]"
5---
6
7# /create-viz - Create Visualizations
8
9> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
11Create publication-quality data visualizations using Python. Generates charts from data with best practices for clarity, accuracy, and design.

/create-viz - Create Visualizations

If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.

Create publication-quality data visualizations using Python. Generates charts from data with best practices for clarity, accuracy, and design.

Raw lines 1 to 12
Names a skill data-visualization :11
13## Usage
15```
16/create-viz <data source> [chart type] [additional instructions]
17```

Usage

/create-viz <data source> [chart type] [additional instructions]
Raw lines 13 to 18
19## Workflow
21### 1. Understand the Request
23Determine:
25- **Data source**: Query results, pasted data, CSV/Excel file, or data to be queried
26- **Chart type**: Explicitly requested or needs to be recommended
28- **Audience**: Technical team, executives, external stakeholders

1. Understand the Request

Determine:

Raw lines 21 to 29
Names a skill build-dashboard :27
30### 2. Get the Data
32**If data warehouse is connected and data needs querying:**
331. Write and execute the query
342. Load results into a pandas DataFrame
36**If data is pasted or uploaded:**
371. Parse the data into a pandas DataFrame
382. Clean and prepare as needed (type conversions, null handling)
411. Reference the existing data

2. Get the Data

If data warehouse is connected and data needs querying:

  1. Write and execute the query
  2. Load results into a pandas DataFrame

If data is pasted or uploaded:

  1. Parse the data into a pandas DataFrame
  2. Clean and prepare as needed (type conversions, null handling)

If data is from a previous analysis in the conversation:

  1. Reference the existing data
Raw lines 30 to 42
Names a skill analyze :40
43### 3. Select Chart Type
45If the user didn't specify a chart type, recommend one based on the data and question:
47| Data Relationship | Recommended Chart |
48|---|---|
49| Trend over time | Line chart |
50| Comparison across categories | Bar chart (horizontal if many categories) |
51| Part-to-whole composition | Stacked bar or area chart (avoid pie charts unless <6 categories) |
52| Distribution of values | Histogram or box plot |
53| Correlation between two variables | Scatter plot |
54| Two-variable comparison over time | Dual-axis line or grouped bar |
55| Geographic data | Choropleth map |
56| Ranking | Horizontal bar chart |
57| Flow or process | Sankey diagram |
58| Matrix of relationships | Heatmap |
60Explain the recommendation briefly if the user didn't specify.

3. Select Chart Type

If the user didn't specify a chart type, recommend one based on the data and question:

Data RelationshipRecommended Chart
Trend over timeLine chart
Comparison across categoriesBar chart (horizontal if many categories)
Part-to-whole compositionStacked bar or area chart (avoid pie charts unless <6 categories)
Distribution of valuesHistogram or box plot
Correlation between two variablesScatter plot
Two-variable comparison over timeDual-axis line or grouped bar
Geographic dataChoropleth map
RankingHorizontal bar chart
Flow or processSankey diagram
Matrix of relationshipsHeatmap

Explain the recommendation briefly if the user didn't specify.

Raw lines 43 to 61
62### 4. Generate the Visualization
64Write Python code using one of these libraries based on the need:
66- **matplotlib + seaborn**: Best for static, publication-quality charts. Default choice.
67- **plotly**: Best for interactive charts or when the user requests interactivity.
69**Code requirements:**
71```python
72import matplotlib.pyplot as plt
73import seaborn as sns
74import pandas as pd
76# Set professional style
77plt.style.use('seaborn-v0_8-whitegrid')
78sns.set_palette("husl")
80# Create figure with appropriate size
81fig, ax = plt.subplots(figsize=(10, 6))
83# [chart-specific code]
85# Always include:
86ax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')
87ax.set_xlabel('X-Axis Label', fontsize=11)
88ax.set_ylabel('Y-Axis Label', fontsize=11)
90# Format numbers appropriately
91# - Percentages: '45.2%' not '0.452'
92# - Currency: '$1.2M' not '1200000'
93# - Large numbers: '2.3K' or '1.5M' not '2300' or '1500000'
95# Remove chart junk
96ax.spines['top'].set_visible(False)
97ax.spines['right'].set_visible(False)
99plt.tight_layout()
100plt.savefig('chart_name.png', dpi=150, bbox_inches='tight')
101plt.show()
102```

4. Generate the Visualization

Write Python code using one of these libraries based on the need:

  • matplotlib + seaborn: Best for static, publication-quality charts. Default choice.
  • plotly: Best for interactive charts or when the user requests interactivity.

Code requirements:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# Set professional style
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette("husl")

# Create figure with appropriate size
fig, ax = plt.subplots(figsize=(10, 6))

# [chart-specific code]

# Always include:
ax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')
ax.set_xlabel('X-Axis Label', fontsize=11)
ax.set_ylabel('Y-Axis Label', fontsize=11)

# Format numbers appropriately
# - Percentages: '45.2%' not '0.452'
# - Currency: '$1.2M' not '1200000'
# - Large numbers: '2.3K' or '1.5M' not '2300' or '1500000'

# Remove chart junk
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

plt.tight_layout()
plt.savefig('chart_name.png', dpi=150, bbox_inches='tight')
plt.show()
Raw lines 62 to 103
104### 5. Apply Design Best Practices
106**Color:**
107- Use a consistent, colorblind-friendly palette
108- Use color meaningfully (not decoratively)
109- Highlight the key data point or trend with a contrasting color
110- Grey out less important reference data
112**Typography:**
113- Descriptive title that states the insight, not just the metric (e.g., "Revenue grew 23% YoY" not "Revenue by Month")
114- Readable axis labels (not rotated 90 degrees if avoidable)
115- Data labels on key points when they add clarity
117**Layout:**
118- Appropriate whitespace and margins
119- Legend placement that doesn't obscure data
120- Sorted categories by value (not alphabetically) unless there's a natural order
122**Accuracy:**
123- Y-axis starts at zero for bar charts
124- No misleading axis breaks without clear notation
125- Consistent scales when comparing panels
126- Appropriate precision (don't show 10 decimal places)

5. Apply Design Best Practices

Color:

  • Use a consistent, colorblind-friendly palette
  • Use color meaningfully (not decoratively)
  • Highlight the key data point or trend with a contrasting color
  • Grey out less important reference data

Typography:

  • Descriptive title that states the insight, not just the metric (e.g., "Revenue grew 23% YoY" not "Revenue by Month")
  • Readable axis labels (not rotated 90 degrees if avoidable)
  • Data labels on key points when they add clarity

Layout:

  • Appropriate whitespace and margins
  • Legend placement that doesn't obscure data
  • Sorted categories by value (not alphabetically) unless there's a natural order

Accuracy:

  • Y-axis starts at zero for bar charts
  • No misleading axis breaks without clear notation
  • Consistent scales when comparing panels
  • Appropriate precision (don't show 10 decimal places)
Raw lines 104 to 127
128### 6. Save and Present
1301. Save the chart as a PNG file with descriptive name
1312. Display the chart to the user
1323. Provide the code used so they can modify it
1334. Suggest variations (different chart type, different grouping, zoomed time range)

6. Save and Present

  1. Save the chart as a PNG file with descriptive name
  2. Display the chart to the user
  3. Provide the code used so they can modify it
  4. Suggest variations (different chart type, different grouping, zoomed time range)
Raw lines 128 to 134
135## Examples
137```
138/create-viz Show monthly revenue for the last 12 months as a line chart with the trend highlighted
139```
141```
142/create-viz Here's our NPS data by product: [pastes data]. Create a horizontal bar chart ranking products by score.
143```
145```
146/create-viz Query the orders table and create a heatmap of order volume by day-of-week and hour
147```

Examples

/create-viz Show monthly revenue for the last 12 months as a line chart with the trend highlighted
/create-viz Here's our NPS data by product: [pastes data]. Create a horizontal bar chart ranking products by score.
/create-viz Query the orders table and create a heatmap of order volume by day-of-week and hour
Raw lines 135 to 148
149## Tips
151- If you want interactive charts (hover, zoom, filter), mention "interactive" and Claude will use plotly
152- Specify "presentation" if you need larger fonts and higher contrast
153- You can request multiple charts at once (e.g., "create a 2x2 grid of charts showing...")
154- Charts are saved to your current directory as PNG files

Tips

  • If you want interactive charts (hover, zoom, filter), mention "interactive" and Claude will use plotly
  • Specify "presentation" if you need larger fonts and higher contrast
  • You can request multiple charts at once (e.g., "create a 2x2 grid of charts showing...")
  • Charts are saved to your current directory as PNG files
Raw lines 149 to 154

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.