create-viz
Skill1 starsChanged 7 months agoMITView on GitHub
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 plotly. Trigger phrases: "create a chart", "visualize this data", "plot this", "make a graph", "bar chart of", "line chart showing", "heatmap of", "scatter plot", "histogram", "create a visualization", "chart for my presentation", "plotly chart"
2 other projects use a version of this.
Adopted by
Most recently taken up by
- anthropics/knowledge-work-pluginstheir own version, first seen Oct 13, 2026
- kongaharsha/claude-skillstheir own version, first seen Apr 20, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- anthropics/knowledge-work-plugins★ 35ksame name
- kongaharsha/claude-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository164 other files it gives its agents.
- instrument-data-to-allotropeSkill
- literature-reviewSkill
- nextflow-developmentSkill
- scientific-problem-selectionSkill
- scvi-toolsSkill
- single-cell-rna-qcSkill
- discover-brandSkill
- enforce-voiceSkill
- generate-guidelinesSkill
- csat-reportSkill
- customer-escalationSkill
- customer-researchSkill
- draft-responseSkill
- kb-articleSkill
- sentiment-analysisSkill
- ticket-triageSkill
- analyzeSkill
- build-dashboardSkill
- data-context-extractorSkill
- data-modelingSkill
- data-pipelineSkill
- etl-designSkill
- explore-dataSkill
- sql-queriesSkill
- statistical-analysisSkill
- validate-dataSkill
- write-querySkill
- accessibility-reviewSkill
- component-librarySkill
- design-critiqueSkill
- design-handoffSkill
- design-systemSkill
- frontend-designSkill
- research-synthesisSkill
- user-researchSkill
- ux-copySkill
- wireframingSkill
- Agent DevelopmentSkill
- CLAUDE.md ManagementSkill
- MCP Server BuilderSkill
- Plugin DevelopmentSkill
- Prompt EngineeringSkill
- Skill CreatorSkill
- curriculum-designSkill
- lesson-planningSkill
- quiz-generatorSkill
- study-guideSkill
- tutoringSkill
- api-designSkill
- architectureSkill
- ci-cd-pipelineSkill
- code-reviewSkill
- database-migrationSkill
- debugSkill
- dependency-auditSkill
- deploy-checklistSkill
- documentationSkill
- error-handlingSkill
- git-workflowSkill
- incident-responseSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 14 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈14
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Create publication-quality data visualizations using Python.
- Distinctive: line 18
Before choosing a chart type, answer:
- Distinctive: line 20
What is the message?: Every chart should make one point clearly.
- Very specific: line 126
Use a colorblind-friendly palette (e.g., colorblind, Set2, or custom)
- Distinctive: line 128
Use color intensity to encode magnitude
- Distinctive: line 130
Use gray for context/baseline, color for the focus
- Distinctive: line 137
Use sentence case, not ALL CAPS
- Distinctive: line 140
Remove chart junk: unnecessary gridlines, borders, backgrounds
- Distinctive: line 143
Add whitespace between elements
- Very specific: line 144
Use tight_layout() or constrained_layout=True
- Distinctive: line 147
Do not rely on color alone -- use patterns, markers, or labels
- Distinctive: line 148
Ensure minimum contrast ratio of 4.5:1 for text
- Distinctive: line 149
Add alt text when embedding in HTML or documents
- Distinctive: line 150
Use at least 2pt line width for line charts
- Distinctive: line 192
One message per chart: If you need to show two things, make two charts.
- Very specific: line 196
Format numbers for humans: Use $1.2M not 1200000. Use thousands separators.
- Distinctive: line 201
Include data source: Add a small footnote with the source and date range.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create Visualization Skill
Create publication-quality data visualizations using Python. Select the right chart type, apply design principles, and produce clean, accessible figures ready for reports and presentations.
Workflow
Step 1: Understand the Data and Message
Before choosing a chart type, answer:
- What is the message? Every chart should make one point clearly.
- What type of data? Categorical, continuous, temporal, geospatial?
- What relationship? Trend, comparison, composition, distribution, correlation?
- How many variables? One, two, three or more dimensions?
- How many data points? 5 categories vs. 5,000 observations require different approaches.
- Where will it be displayed? Slide deck, printed report, web page, notebook?
Step 2: Select the Chart Type
| Relationship | Best Chart Types | When to Use |
| Trend over time | Line chart, area chart | Continuous time series, 1-5 series |
| Comparison | Bar chart (horizontal for many categories) | Comparing discrete categories |
| Ranking | Horizontal bar chart | Ordered comparison, especially with labels |
| Distribution | Histogram, box plot, violin plot | Understanding spread and shape |
| Composition | Stacked bar, donut (sparingly) | Part-to-whole relationships |
| Correlation | Scatter plot, bubble chart | Two continuous variables |
| Flow/Change | Waterfall chart, Sankey diagram | Sequential changes or flows |
| Heatmap | Heatmap, calendar heatmap | Patterns across two dimensions |
| Geospatial | Choropleth, point map | Location-based data |
Charts to avoid:
- Pie charts with more than 5 slices
- 3D charts (distort perception)
- Dual y-axis charts (confuse readers) -- use two separate charts instead
- Radar/spider charts (hard to read)
Step 3: Prepare the Data
import pandas as pd
import numpy as np
# Standard data preparation
df = pd.read_csv('data.csv', parse_dates=['date'])
df = df.sort_values('date')
# Aggregation for visualization
summary = df.groupby('category').agg(
total=('revenue', 'sum'),
count=('order_id', 'nunique')
).reset_index().sort_values('total', ascending=False)Step 4: Build the Visualization
Matplotlib/Seaborn (Static, Publication-Quality)
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import seaborn as sns
# Set global style
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette('colorblind')
fig, ax = plt.subplots(figsize=(10, 6))
# Plot
ax.plot(df['date'], df['revenue'], linewidth=2, color='#2563eb')
# Formatting
ax.set_title('Monthly Revenue Trend', fontsize=16, fontweight='bold', pad=16)
ax.set_xlabel('')
ax.set_ylabel('Revenue ($)', fontsize=12)
ax.yaxis.set_major_formatter(mticker.FuncFormatter(lambda x, _: f'${x/1e6:.1f}M'))
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# Annotations
ax.annotate('Product Launch', xy=(launch_date, launch_value),
xytext=(10, 20), textcoords='offset points',
arrowprops=dict(arrowstyle='->', color='gray'),
fontsize=10, color='gray')
plt.tight_layout()
plt.savefig('revenue_trend.png', dpi=150, bbox_inches='tight')
plt.show()Plotly (Interactive)
import plotly.express as px
import plotly.graph_objects as go
fig = px.line(df, x='date', y='revenue', color='segment',
title='Revenue by Segment',
labels={'revenue': 'Revenue ($)', 'date': ''},
template='plotly_white')
fig.update_layout(
font=dict(family='Inter, sans-serif', size=12),
legend=dict(orientation='h', yanchor='bottom', y=1.02),
hovermode='x unified'
)
fig.update_yaxes(tickprefix='$', tickformat=',.0f')
fig.write_html('revenue_interactive.html')
fig.show()Step 5: Apply Design Principles
Color:
- Use a colorblind-friendly palette (e.g.,
colorblind,Set2, or custom) - Limit to 5-7 colors maximum
- Use color intensity to encode magnitude
- Reserve red/green for clear positive/negative semantics
- Use gray for context/baseline, color for the focus
Typography:
- Title: 14-18pt, bold
- Axis labels: 11-13pt
- Tick labels: 9-11pt
- Annotations: 9-11pt, lighter color
- Use sentence case, not ALL CAPS
Layout:
- Remove chart junk: unnecessary gridlines, borders, backgrounds
- Maximize data-ink ratio
- Left-align text elements
- Add whitespace between elements
- Use
tight_layout()orconstrained_layout=True
Accessibility:
- Do not rely on color alone -- use patterns, markers, or labels
- Ensure minimum contrast ratio of 4.5:1 for text
- Add alt text when embedding in HTML or documents
- Use at least 2pt line width for line charts
Step 6: Save and Export
# High-resolution PNG for reports
fig.savefig('chart.png', dpi=300, bbox_inches='tight', facecolor='white')
# SVG for presentations (scalable)
fig.savefig('chart.svg', bbox_inches='tight')
# PDF for print
fig.savefig('chart.pdf', bbox_inches='tight')
# Interactive HTML (plotly)
fig.write_html('chart.html', include_plotlyjs='cdn')Output Format
Deliver:
- The Python code that generates the visualization (reproducible)
- The rendered image or HTML file
- A brief note on chart type selection rationale
- Suggestions for alternative views if relevant
Examples
Example 1: Time Series Trend
Line chart with confidence bands, annotated events, formatted axis labels, reference line for target.
Example 2: Category Comparison
Horizontal bar chart sorted by value, value labels on bars, highlighted top-N, muted colors for the rest.
Example 3: Distribution Analysis
Histogram with KDE overlay, vertical lines for mean/median, quartile annotations, sample size noted.
Example 4: Correlation
Scatter plot with regression line, R-squared annotation, marginal histograms, color-coded by segment.
Best Practices
- One message per chart. If you need to show two things, make two charts.
- Title states the insight, not the data. "Revenue grew 23% in Q4" is better than "Q4 Revenue."
- Sort meaningfully. Sort bars by value, not alphabetically. Sort time series chronologically.
- Start y-axis at zero for bar charts. Line charts may use a non-zero baseline if justified.
- Format numbers for humans. Use
$1.2Mnot1200000. Use thousands separators. - Remove legends when possible. Label data directly on the chart instead.
- Use consistent scales when comparing. Side-by-side charts should share the same axis range.
- Test in grayscale. Print a black-and-white version to ensure the chart still works.
- Size charts for the medium. Slides need larger text than notebooks. Print needs higher DPI than screens.
- Include data source. Add a small footnote with the source and date range.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

