Python Dataviz
Professional data visualization using Python (matplotlib, seaborn, plotly). Create publication-quality static charts, statistical visualizations, and interac...
Professional data visualization using Python (matplotlib, seaborn, plotly). Create publication-quality static charts, statistical visualizations, and interac...
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Create professional charts, graphs, and statistical visualizations using Python's leading libraries.
matplotlib - Static plots, publication-quality, full control
seaborn - Statistical visualizations, beautiful defaults
plotly - Interactive charts, web-friendly
cd skills/python-dataviz python3 -m venv .venv source .venv/bin/activate pip install .
import matplotlib.pyplot as plt import numpy as npData
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')
Distribution/Statistical:
plt.hist() or sns.histplot()sns.boxplot()sns.violinplot()sns.kdeplot()Comparison:
plt.bar() or sns.barplot()sns.barplot(hue=...)plt.barh() or sns.barplot(orient='h')Relationship:
plt.scatter() or sns.scatterplot()plt.plot() or sns.lineplot()sns.regplot() or sns.lmplot()Heatmaps:
sns.heatmap(df.corr())plt.imshow() or sns.heatmap()Interactive:
plotly.express or plotly.graph_objectsplt.figure(figsize=(10, 6)) # Width x Height in inches plt.savefig('output.png', dpi=300) # Publication: 300 dpi, Web: 72-150 dpi
# Seaborn palettes (works with matplotlib too) import seaborn as sns sns.set_palette("husl") # Colorful sns.set_palette("muted") # Soft sns.set_palette("deep") # BoldCustom colors
colors = ['#667eea', '#764ba2', '#f6ad55', '#4299e1']
# Use seaborn styles even for matplotlib import seaborn as sns sns.set_theme() # Better defaults sns.set_style("whitegrid") # Options: whitegrid, darkgrid, white, dark, ticksOr matplotlib styles
plt.style.use('ggplot') # Options: ggplot, seaborn, bmh, fivethirtyeight
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
# 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')
See references/ for detailed guides:
See scripts/ for ready-to-use examples:
scripts/bar_chart.py - Bar and grouped bar chartsscripts/line_chart.py - Line plots with multiple seriesscripts/scatter_plot.py - Scatter plots with regressionscripts/heatmap.py - Correlation heatmapsscripts/distribution.py - Histograms, KDE, violin plotsscripts/interactive.py - Plotly interactive chartsimport pandas as pd df = pd.read_csv('data.csv')Plot with pandas (uses matplotlib)
df.plot(x='date', y='value', kind='line', figsize=(10, 6)) plt.savefig('output.png', dpi=300)
Or with seaborn for better styling
sns.lineplot(data=df, x='date', y='value') plt.savefig('output.png', dpi=300)
data = {'Category A': 25, 'Category B': 40, 'Category C': 15}Matplotlib
plt.bar(data.keys(), data.values()) plt.savefig('output.png', dpi=300)
Seaborn (convert to DataFrame)
import pandas as pd df = pd.DataFrame(list(data.items()), columns=['Category', 'Value']) sns.barplot(data=df, x='Category', y='Value') plt.savefig('output.png', dpi=300)
import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)
plt.plot(x, y) plt.savefig('output.png', dpi=300)
"No module named matplotlib"
cd skills/python-dataviz source .venv/bin/activate pip install -r requirements.txt
Blank output / "Figure is empty"
plt.savefig() comes AFTER plotting commandsplt.show() for interactive viewing during developmentLabels cut off
plt.tight_layout() # Add before plt.savefig() # Or plt.savefig('output.png', bbox_inches='tight')
Low resolution output
plt.savefig('output.png', dpi=300) # Not 72 or 100
The skill includes a venv with all dependencies. Always activate before use:
cd /home/matt/.openclaw/workspace/skills/python-dataviz source .venv/bin/activate
Dependencies: matplotlib, seaborn, plotly, pandas, numpy, kaleido (for plotly static export)
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.