create-viz
anthropics/knowledge-work-plugins
Create publication-quality visualizations from data with Python—charts, plots, and interactive graphics optimized for reports and presentations.
What is create-viz?
Generate professional data visualizations from query results, DataFrames, or pasted data using matplotlib, seaborn, or plotly. Use this skill when you need to turn raw data into a clear chart for exploration, reporting, or presentation—the skill recommends appropriate chart types and applies design best practices automatically.
- Converts data sources (queries, CSVs, pasted data) into pandas DataFrames and generates charts
- Recommends optimal chart types based on data relationships (trends, comparisons, distributions, correlations, etc.)
- Creates static publication-quality charts with matplotlib/seaborn or interactive charts with plotly
- Applies design best practices: colorblind-friendly palettes, clear titles, proper axis formatting, and removed chart junk
- Saves charts as high-resolution PNG files with descriptive names
- Supports multiple chart types: line, bar, scatter, histogram, heatmap, stacked area, Sankey, choropleth, and more
How to install create-viz
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill create-vizHow to use create-viz
- 1.Provide your data source: a database query, CSV/Excel file, pasted data, or reference existing data from the conversation
- 2.Optionally specify a chart type; if not provided, the skill will recommend one based on your data
- 3.Add any additional instructions (e.g., 'interactive', 'presentation', specific color scheme, or multiple charts)
- 4.The skill generates Python code, creates the visualization, saves it as a PNG, and displays the result
- 5.Review the generated code and request variations if needed (different chart type, grouping, or time range)
Use cases
- Turn monthly sales query results into a line chart showing revenue trends over the last 12 months
- Create a horizontal bar chart ranking products by NPS score from pasted survey data
- Generate a heatmap of order volume by day-of-week and hour from a database query
- Build an interactive plotly chart with hover tooltips and zoom for a dashboard component
- Create a 2×2 grid of comparison charts for a presentation to executives
- Data analysts and business intelligence professionals creating reports
- Product managers preparing presentation decks with data visualizations
- Engineers and researchers visualizing analysis results
- Anyone needing to convert raw data into clear, professional charts
create-viz FAQ
Describe your data and question, and the skill will recommend the best chart type. For example, trends over time → line chart, comparisons across categories → bar chart, part-to-whole → stacked bar or area chart.
Yes. Mention 'interactive' in your request and the skill will use plotly instead of matplotlib, adding hover tooltips, zoom, and filtering capabilities.
The skill generates Python code you can modify. You can adjust colors, fonts, sizes, labels, and layout by editing the code before re-running it.
Query results from connected data warehouses, CSV/Excel files, pasted data, and DataFrames from previous analyses in the conversation.
Yes. Request a grid of charts (e.g., '2×2 grid') or multiple visualizations of the same data with different chart types.
Full instructions (SKILL.md)
Source of truth, from anthropics/knowledge-work-plugins.
name: create-viz 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. argument-hint: "<data source> [chart type]"
/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.
Usage
/create-viz <data source> [chart type] [additional instructions]
Workflow
1. 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.
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()
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)
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 hour
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
Related skills
More from anthropics/knowledge-work-plugins and the wider catalog.

data-visualization
Pick the right chart and generate publication-quality Python visualizations with built-in design and accessibility best practices.

code-review
Review code changes for security, performance, and correctness issues before merging.

documentation
Write and maintain technical documentation for APIs, READMEs, runbooks, and architecture guides.

build-dashboard
Build self-contained interactive HTML dashboards with charts, filters, and tables that open directly in a browser.

task-management
Track tasks in a shared TASKS.md file with optional visual dashboard.

memory-management
Two-tier memory system that decodes workplace shorthand so Claude understands requests like a colleague would.