create-viz
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.
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.
What it takes when started
<data source> [chart type]
What to type after its name when you start it.
What it leads to
- an alternative: data-visualization line 11
Other skills this one hands off to, calls, requires or offers instead, as a model read them.
Licence
Apache-2.0, from data/LICENSE
The terms its author shares it under, which let it be shown here.
The text
Most marks come from matching words in the file, so treat them as pointers.
/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 12Workflow
Raw lines 19 to 201. Understand the Request
Determine:
- Data source: Query results, pasted data, CSV/Excel file, or data to be queried
- Chart type: Explicitly requested or needs to be recommended
- Purpose: Exploration, presentation, report, dashboard component
- Audience: Technical team, executives, external stakeholders
2. Get the Data
If data warehouse is connected and data needs querying:
- Write and execute the query
- Load results into a pandas DataFrame
If data is pasted or uploaded:
- Parse the data into a pandas DataFrame
- Clean and prepare as needed (type conversions, null handling)
If data is from a previous analysis in the conversation:
- Reference the existing data
3. Select Chart Type
If the user didn't specify a chart type, recommend one based on the data and question:
| Data Relationship | Recommended Chart |
|---|---|
| Trend over time | Line chart |
| Comparison across categories | Bar chart (horizontal if many categories) |
| Part-to-whole composition | Stacked bar or area chart (avoid pie charts unless <6 categories) |
| Distribution of values | Histogram or box plot |
| Correlation between two variables | Scatter plot |
| Two-variable comparison over time | Dual-axis line or grouped bar |
| Geographic data | Choropleth map |
| Ranking | Horizontal bar chart |
| Flow or process | Sankey diagram |
| Matrix of relationships | Heatmap |
Explain the recommendation briefly if the user didn't specify.
Raw lines 43 to 614. 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 1035. 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)
6. Save and Present
- Save the chart as a PNG file with descriptive name
- Display the chart to the user
- Provide the code used so they can modify it
- Suggest variations (different chart type, different grouping, zoomed time range)
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 hourRaw lines 135 to 148Tips
- 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
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.