data/skills/create-viz/SKILL.md
Create publication-quality visualizations with Python
npx skillsauth add grailautomation/claude-plugins create-vizInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
/data:create-viz <data source> [chart type] [additional instructions]
Determine:
If data warehouse is connected and data needs querying:
If data is pasted or uploaded:
If data is from a previous analysis in the conversation:
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.
Write Python code using one of these libraries based on the need:
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()
Color:
Typography:
Layout:
Accuracy:
/data:create-viz Show monthly revenue for the last 12 months as a line chart with the trend highlighted
/data:create-viz Here's our NPS data by product: [pastes data]. Create a horizontal bar chart ranking products by score.
/data:create-viz Query the orders table and create a heatmap of order volume by day-of-week and hour
development
Parse and analyze Workato recipe JSON exports. Use when the user asks about a Workato recipe's logic, data flow, field mappings, error handling, or control flow. Also use when the user references a .recipe.json file or asks to debug a Workato integration.
databases
Review implementation plans as a staff software engineer. Use when the user asks for staff engineer feedback, senior engineering review, plan review, architecture review, implementation-plan critique, approval before proceeding, risk review, or feedback on a proposed technical plan.
tools
Use when the user invokes $spec-kit:tasks or /spec-kit:tasks, or asks to generate dependency-ordered tasks from the plan and repo context.
testing
Use when the user invokes $spec-kit:specify or /spec-kit:specify, or asks to create a brownfield-aware feature specification from a natural language description.