skills/python-dataviz/SKILL.md
--- name: python-dataviz version: "1.0.0" author: "DunCrew" metadata: openclaw: emoji: "📈" primaryEnv: "shell" --- --- name: python-dataviz description: Professional data visualization using Python (matplotlib, seaborn, plotly). Create publication-quality static charts, statistical visualizations, and interactive plots. Use when generating charts/graphs/plots from data, creating infographics with data components, or producing scientific/statistical visualizations. Supports PNG/SVG (s
npx skillsauth add fatby/duncrew python-datavizInstall 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.
--- name: python-dataviz description: Professional data visualization using Python (matplotlib, seaborn, plotly). Create publication-quality static charts, statistical visualizations, and interactive plots. Use when generating charts/graphs/plots from data, creating infographics with data components, or producing scientific/statistical visualizations. Supports PNG/SVG (static) and HTML (interactive) export. --- # Python Data Visualization Create professional charts, graphs, and statistical visualizations using Python's leading libraries. ## Libraries & Use Cases matplotlib - Static plots, publication-quality, full control - Bar, line, scatter, pie, histogram, heatmap - Multi-panel figures, subplots - Custom styling, annotations - Export: PNG, SVG, PDF seaborn - Statistical visualizations, beautiful defaults - Distribution plots (violin, box, kde, histogram) - Categorical plots (bar, count, swarm, box) - Relationship plots (scatter, line, regression) - Matrix plots (heatmap, clustermap) - Built on matplotlib, integrates seamlessly plotly - Interactive charts, web-friendly - Hover tooltips, zoom, pan - 3D plots, animations - Dashboards via Dash framework - Export: HTML, PNG (requires kaleido) ## Quick Start ### Setup Environment bash cd skills/python-dataviz python3 -m venv .venv source .venv/bin/activate pip install . ### Create a Chart python import matplotlib.pyplot as plt import numpy as np # Data x = np.linspace(0, 10, 100) y = np.sin(x) # Plot plt.figure(figsize=(10, 6)) plt.plot(x, y, linewidth=2, color='#667eea') plt.title('Sine Wave', fontsize=16, fontweight='bold') plt.xlabel('X Axis') plt.ylabel('Y Axis') plt.grid(alpha=0.3) plt.tight_layout() # Export plt.savefig('output.png', dpi=300, bbox_inches='tight') plt.savefig('output.svg', bbox_inches='tight') ## Chart Selection Guide Distribution/Statistical: - Histogram → plt.hist() or sns.histplot() - Box plot → sns.boxplot() - Violin plot → sns.violinplot() - KDE → sns.kdeplot() Comparison: - Bar chart → plt.bar() or sns.barplot() - Grouped bar → sns.barplot(hue=...) - Horizontal bar → plt.barh() or sns.barplot(orient='h') Relationship: - Scatter → plt.scatter() or sns.scatterplot() - Line → plt.plot() or sns.lineplot() - Regression → sns.regplot() or sns.lmplot() Heatmaps: - Correlation matrix → sns.heatmap(df.corr()) - 2D data → plt.imshow() or sns.heatmap() Interactive: - Any plotly chart → plotly.express or plotly.graph_objects - See references/plotly-examples.md ## Best Practices ### 1. Figure Size & DPI python plt.figure(figsize=(10, 6)) # Width x Height in inches plt.savefig('output.png', dpi=300) # Publication: 300 dpi, Web: 72-150 dpi ### 2. Color Palettes python # Seaborn palettes (works with matplotlib too) import seaborn as sns sns.set_palette("husl") # Colorful sns.set_palette("muted") # Soft sns.set_palette("deep") # Bold # Custom colors colors = ['#667eea', '#764ba2', '#f6ad55', '#4299e1'] ### 3. Styling python # Use seaborn styles even for matplotlib import seaborn as sns sns.set_theme() # Better defaults sns.set_style("whitegrid") # Options: whitegrid, darkgrid, white, dark, ticks # Or matplotlib styles plt.style.use('ggplot') # Options: ggplot, seaborn, bmh, fivethirtyeight ### 4. Multiple Subplots python fig, axes = plt.subplots(2, 2, figsize=(12, 10)) axes[0, 0].plot(x, y1) axes[0, 1].plot(x, y2) # etc. plt.tight_layout() # Prevent label overlap ### 5. Export Formats python # PNG for sharing/embedding (raster) plt.savefig('chart.png', dpi=300, bbox_inches='tight', transparent=False) # SVG for editing/scaling (vector) plt.savefig('chart.svg', bbox_inches='tight') # For plotly (interactive) import plotly.express as px fig = px.scatter(df, x='col1', y='col2') fig.write_html('chart.html') ## Advanced Topics See references/ for detailed guides: - Color theory & palettes: references/colors.md - Statistical plots: references/stat
tools
Use the webSearch tool to find information online.
development
Query weather information for any location.
tools
Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).
tools
Start voice calls via the OpenClaw voice-call plugin.