{"id":"1c0f1505-89e5-48a4-8355-9945c972243e","shortId":"jTuUW5","kind":"skill","title":"seaborn","tagline":"Seaborn is a Python visualization library for creating publication-quality statistical graphics. Use this skill for dataset-oriented plotting, multivariate analysis, automatic statistical estimation, and complex multi-panel figures with minimal code.","description":"# Seaborn Statistical Visualization\n\n## When to Use\n- You need publication-quality statistical graphics directly from tabular datasets.\n- You are exploring multivariate relationships, distributions, or grouped comparisons with minimal plotting code.\n- You want seaborn's dataset-oriented API and statistical defaults on top of matplotlib.\n\n## Overview\n\nSeaborn is a Python visualization library for creating publication-quality statistical graphics. Use this skill for dataset-oriented plotting, multivariate analysis, automatic statistical estimation, and complex multi-panel figures with minimal code.\n\n## Design Philosophy\n\nSeaborn follows these core principles:\n\n1. **Dataset-oriented**: Work directly with DataFrames and named variables rather than abstract coordinates\n2. **Semantic mapping**: Automatically translate data values into visual properties (colors, sizes, styles)\n3. **Statistical awareness**: Built-in aggregation, error estimation, and confidence intervals\n4. **Aesthetic defaults**: Publication-ready themes and color palettes out of the box\n5. **Matplotlib integration**: Full compatibility with matplotlib customization when needed\n\n## Quick Start\n\n```python\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n# Load example dataset\ndf = sns.load_dataset('tips')\n\n# Create a simple visualization\nsns.scatterplot(data=df, x='total_bill', y='tip', hue='day')\nplt.show()\n```\n\n## Core Plotting Interfaces\n\n### Function Interface (Traditional)\n\nThe function interface provides specialized plotting functions organized by visualization type. Each category has **axes-level** functions (plot to single axes) and **figure-level** functions (manage entire figure with faceting).\n\n**When to use:**\n- Quick exploratory analysis\n- Single-purpose visualizations\n- When you need a specific plot type\n\n### Objects Interface (Modern)\n\nThe `seaborn.objects` interface provides a declarative, composable API similar to ggplot2. Build visualizations by chaining methods to specify data mappings, marks, transformations, and scales.\n\n**When to use:**\n- Complex layered visualizations\n- When you need fine-grained control over transformations\n- Building custom plot types\n- Programmatic plot generation\n\n```python\nfrom seaborn import objects as so\n\n# Declarative syntax\n(\n    so.Plot(data=df, x='total_bill', y='tip')\n    .add(so.Dot(), color='day')\n    .add(so.Line(), so.PolyFit())\n)\n```\n\n## Plotting Functions by Category\n\n### Relational Plots (Relationships Between Variables)\n\n**Use for:** Exploring how two or more variables relate to each other\n\n- `scatterplot()` - Display individual observations as points\n- `lineplot()` - Show trends and changes (automatically aggregates and computes CI)\n- `relplot()` - Figure-level interface with automatic faceting\n\n**Key parameters:**\n- `x`, `y` - Primary variables\n- `hue` - Color encoding for additional categorical/continuous variable\n- `size` - Point/line size encoding\n- `style` - Marker/line style encoding\n- `col`, `row` - Facet into multiple subplots (figure-level only)\n\n```python\n# Scatter with multiple semantic mappings\nsns.scatterplot(data=df, x='total_bill', y='tip',\n                hue='time', size='size', style='sex')\n\n# Line plot with confidence intervals\nsns.lineplot(data=timeseries, x='date', y='value', hue='category')\n\n# Faceted relational plot\nsns.relplot(data=df, x='total_bill', y='tip',\n            col='time', row='sex', hue='smoker', kind='scatter')\n```\n\n### Distribution Plots (Single and Bivariate Distributions)\n\n**Use for:** Understanding data spread, shape, and probability density\n\n- `histplot()` - Bar-based frequency distributions with flexible binning\n- `kdeplot()` - Smooth density estimates using Gaussian kernels\n- `ecdfplot()` - Empirical cumulative distribution (no parameters to tune)\n- `rugplot()` - Individual observation tick marks\n- `displot()` - Figure-level interface for univariate and bivariate distributions\n- `jointplot()` - Bivariate plot with marginal distributions\n- `pairplot()` - Matrix of pairwise relationships across dataset\n\n**Key parameters:**\n- `x`, `y` - Variables (y optional for univariate)\n- `hue` - Separate distributions by category\n- `stat` - Normalization: \"count\", \"frequency\", \"probability\", \"density\"\n- `bins` / `binwidth` - Histogram binning control\n- `bw_adjust` - KDE bandwidth multiplier (higher = smoother)\n- `fill` - Fill area under curve\n- `multiple` - How to handle hue: \"layer\", \"stack\", \"dodge\", \"fill\"\n\n```python\n# Histogram with density normalization\nsns.histplot(data=df, x='total_bill', hue='time',\n             stat='density', multiple='stack')\n\n# Bivariate KDE with contours\nsns.kdeplot(data=df, x='total_bill', y='tip',\n            fill=True, levels=5, thresh=0.1)\n\n# Joint plot with marginals\nsns.jointplot(data=df, x='total_bill', y='tip',\n              kind='scatter', hue='time')\n\n# Pairwise relationships\nsns.pairplot(data=df, hue='species', corner=True)\n```\n\n### Categorical Plots (Comparisons Across Categories)\n\n**Use for:** Comparing distributions or statistics across discrete categories\n\n**Categorical scatterplots:**\n- `stripplot()` - Points with jitter to show all observations\n- `swarmplot()` - Non-overlapping points (beeswarm algorithm)\n\n**Distribution comparisons:**\n- `boxplot()` - Quartiles and outliers\n- `violinplot()` - KDE + quartile information\n- `boxenplot()` - Enhanced boxplot for larger datasets\n\n**Statistical estimates:**\n- `barplot()` - Mean/aggregate with confidence intervals\n- `pointplot()` - Point estimates with connecting lines\n- `countplot()` - Count of observations per category\n\n**Figure-level:**\n- `catplot()` - Faceted categorical plots (set `kind` parameter)\n\n**Key parameters:**\n- `x`, `y` - Variables (one typically categorical)\n- `hue` - Additional categorical grouping\n- `order`, `hue_order` - Control category ordering\n- `dodge` - Separate hue levels side-by-side\n- `orient` - \"v\" (vertical) or \"h\" (horizontal)\n- `kind` - Plot type for catplot: \"strip\", \"swarm\", \"box\", \"violin\", \"bar\", \"point\"\n\n```python\n# Swarm plot showing all points\nsns.swarmplot(data=df, x='day', y='total_bill', hue='sex')\n\n# Violin plot with split for comparison\nsns.violinplot(data=df, x='day', y='total_bill',\n               hue='sex', split=True)\n\n# Bar plot with error bars\nsns.barplot(data=df, x='day', y='total_bill',\n            hue='sex', estimator='mean', errorbar='ci')\n\n# Faceted categorical plot\nsns.catplot(data=df, x='day', y='total_bill',\n            col='time', kind='box')\n```\n\n### Regression Plots (Linear Relationships)\n\n**Use for:** Visualizing linear regressions and residuals\n\n- `regplot()` - Axes-level regression plot with scatter + fit line\n- `lmplot()` - Figure-level with faceting support\n- `residplot()` - Residual plot for assessing model fit\n\n**Key parameters:**\n- `x`, `y` - Variables to regress\n- `order` - Polynomial regression order\n- `logistic` - Fit logistic regression\n- `robust` - Use robust regression (less sensitive to outliers)\n- `ci` - Confidence interval width (default 95)\n- `scatter_kws`, `line_kws` - Customize scatter and line properties\n\n```python\n# Simple linear regression\nsns.regplot(data=df, x='total_bill', y='tip')\n\n# Polynomial regression with faceting\nsns.lmplot(data=df, x='total_bill', y='tip',\n           col='time', order=2, ci=95)\n\n# Check residuals\nsns.residplot(data=df, x='total_bill', y='tip')\n```\n\n### Matrix Plots (Rectangular Data)\n\n**Use for:** Visualizing matrices, correlations, and grid-structured data\n\n- `heatmap()` - Color-encoded matrix with annotations\n- `clustermap()` - Hierarchically-clustered heatmap\n\n**Key parameters:**\n- `data` - 2D rectangular dataset (DataFrame or array)\n- `annot` - Display values in cells\n- `fmt` - Format string for annotations (e.g., \".2f\")\n- `cmap` - Colormap name\n- `center` - Value at colormap center (for diverging colormaps)\n- `vmin`, `vmax` - Color scale limits\n- `square` - Force square cells\n- `linewidths` - Gap between cells\n\n```python\n# Correlation heatmap\ncorr = df.corr()\nsns.heatmap(corr, annot=True, fmt='.2f',\n            cmap='coolwarm', center=0, square=True)\n\n# Clustered heatmap\nsns.clustermap(data, cmap='viridis',\n               standard_scale=1, figsize=(10, 10))\n```\n\n## Multi-Plot Grids\n\nSeaborn provides grid objects for creating complex multi-panel figures:\n\n### FacetGrid\n\nCreate subplots based on categorical variables. Most useful when called through figure-level functions (`relplot`, `displot`, `catplot`), but can be used directly for custom plots.\n\n```python\ng = sns.FacetGrid(df, col='time', row='sex', hue='smoker')\ng.map(sns.scatterplot, 'total_bill', 'tip')\ng.add_legend()\n```\n\n### PairGrid\n\nShow pairwise relationships between all variables in a dataset.\n\n```python\ng = sns.PairGrid(df, hue='species')\ng.map_upper(sns.scatterplot)\ng.map_lower(sns.kdeplot)\ng.map_diag(sns.histplot)\ng.add_legend()\n```\n\n### JointGrid\n\nCombine bivariate plot with marginal distributions.\n\n```python\ng = sns.JointGrid(data=df, x='total_bill', y='tip')\ng.plot_joint(sns.scatterplot)\ng.plot_marginals(sns.histplot)\n```\n\n## Figure-Level vs Axes-Level Functions\n\nUnderstanding this distinction is crucial for effective seaborn usage:\n\n### Axes-Level Functions\n- Plot to a single matplotlib `Axes` object\n- Integrate easily into complex matplotlib figures\n- Accept `ax=` parameter for precise placement\n- Return `Axes` object\n- Examples: `scatterplot`, `histplot`, `boxplot`, `regplot`, `heatmap`\n\n**When to use:**\n- Building custom multi-plot layouts\n- Combining different plot types\n- Need matplotlib-level control\n- Integrating with existing matplotlib code\n\n```python\nfig, axes = plt.subplots(2, 2, figsize=(10, 10))\nsns.scatterplot(data=df, x='x', y='y', ax=axes[0, 0])\nsns.histplot(data=df, x='x', ax=axes[0, 1])\nsns.boxplot(data=df, x='cat', y='y', ax=axes[1, 0])\nsns.kdeplot(data=df, x='x', y='y', ax=axes[1, 1])\n```\n\n### Figure-Level Functions\n- Manage entire figure including all subplots\n- Built-in faceting via `col` and `row` parameters\n- Return `FacetGrid`, `JointGrid`, or `PairGrid` objects\n- Use `height` and `aspect` for sizing (per subplot)\n- Cannot be placed in existing figure\n- Examples: `relplot`, `displot`, `catplot`, `lmplot`, `jointplot`, `pairplot`\n\n**When to use:**\n- Faceted visualizations (small multiples)\n- Quick exploratory analysis\n- Consistent multi-panel layouts\n- Don't need to combine with other plot types\n\n```python\n# Automatic faceting\nsns.relplot(data=df, x='x', y='y', col='category', row='group',\n            hue='type', height=3, aspect=1.2)\n```\n\n## Data Structure Requirements\n\n### Long-Form Data (Preferred)\n\nEach variable is a column, each observation is a row. This \"tidy\" format provides maximum flexibility:\n\n```python\n# Long-form structure\n   subject  condition  measurement\n0        1    control         10.5\n1        1  treatment         12.3\n2        2    control          9.8\n3        2  treatment         13.1\n```\n\n**Advantages:**\n- Works with all seaborn functions\n- Easy to remap variables to visual properties\n- Supports arbitrary complexity\n- Natural for DataFrame operations\n\n### Wide-Form Data\n\nVariables are spread across columns. Useful for simple rectangular data:\n\n```python\n# Wide-form structure\n   control  treatment\n0     10.5       12.3\n1      9.8       13.1\n```\n\n**Use cases:**\n- Simple time series\n- Correlation matrices\n- Heatmaps\n- Quick plots of array data\n\n**Converting wide to long:**\n```python\ndf_long = df.melt(var_name='condition', value_name='measurement')\n```\n\n## Color Palettes\n\nSeaborn provides carefully designed color palettes for different data types:\n\n### Qualitative Palettes (Categorical Data)\n\nDistinguish categories through hue variation:\n- `\"deep\"` - Default, vivid colors\n- `\"muted\"` - Softer, less saturated\n- `\"pastel\"` - Light, desaturated\n- `\"bright\"` - Highly saturated\n- `\"dark\"` - Dark values\n- `\"colorblind\"` - Safe for color vision deficiency\n\n```python\nsns.set_palette(\"colorblind\")\nsns.color_palette(\"Set2\")\n```\n\n### Sequential Palettes (Ordered Data)\n\nShow progression from low to high values:\n- `\"rocket\"`, `\"mako\"` - Wide luminance range (good for heatmaps)\n- `\"flare\"`, `\"crest\"` - Restricted luminance (good for points/lines)\n- `\"viridis\"`, `\"magma\"`, `\"plasma\"` - Matplotlib perceptually uniform\n\n```python\nsns.heatmap(data, cmap='rocket')\nsns.kdeplot(data=df, x='x', y='y', cmap='mako', fill=True)\n```\n\n### Diverging Palettes (Centered Data)\n\nEmphasize deviations from a midpoint:\n- `\"vlag\"` - Blue to red\n- `\"icefire\"` - Blue to orange\n- `\"coolwarm\"` - Cool to warm\n- `\"Spectral\"` - Rainbow diverging\n\n```python\nsns.heatmap(correlation_matrix, cmap='vlag', center=0)\n```\n\n### Custom Palettes\n\n```python\n# Create custom palette\ncustom = sns.color_palette(\"husl\", 8)\n\n# Light to dark gradient\npalette = sns.light_palette(\"seagreen\", as_cmap=True)\n\n# Diverging palette from hues\npalette = sns.diverging_palette(250, 10, as_cmap=True)\n```\n\n## Theming and Aesthetics\n\n### Set Theme\n\n`set_theme()` controls overall appearance:\n\n```python\n# Set complete theme\nsns.set_theme(style='whitegrid', palette='pastel', font='sans-serif')\n\n# Reset to defaults\nsns.set_theme()\n```\n\n### Styles\n\nControl background and grid appearance:\n- `\"darkgrid\"` - Gray background with white grid (default)\n- `\"whitegrid\"` - White background with gray grid\n- `\"dark\"` - Gray background, no grid\n- `\"white\"` - White background, no grid\n- `\"ticks\"` - White background with axis ticks\n\n```python\nsns.set_style(\"whitegrid\")\n\n# Remove spines\nsns.despine(left=False, bottom=False, offset=10, trim=True)\n\n# Temporary style\nwith sns.axes_style(\"white\"):\n    sns.scatterplot(data=df, x='x', y='y')\n```\n\n### Contexts\n\nScale elements for different use cases:\n- `\"paper\"` - Smallest (default)\n- `\"notebook\"` - Slightly larger\n- `\"talk\"` - Presentation slides\n- `\"poster\"` - Large format\n\n```python\nsns.set_context(\"talk\", font_scale=1.2)\n\n# Temporary context\nwith sns.plotting_context(\"poster\"):\n    sns.barplot(data=df, x='category', y='value')\n```\n\n## Best Practices\n\n### 1. Data Preparation\n\nAlways use well-structured DataFrames with meaningful column names:\n\n```python\n# Good: Named columns in DataFrame\ndf = pd.DataFrame({'bill': bills, 'tip': tips, 'day': days})\nsns.scatterplot(data=df, x='bill', y='tip', hue='day')\n\n# Avoid: Unnamed arrays\nsns.scatterplot(x=x_array, y=y_array)  # Loses axis labels\n```\n\n### 2. Choose the Right Plot Type\n\n**Continuous x, continuous y:** `scatterplot`, `lineplot`, `kdeplot`, `regplot`\n**Continuous x, categorical y:** `violinplot`, `boxplot`, `stripplot`, `swarmplot`\n**One continuous variable:** `histplot`, `kdeplot`, `ecdfplot`\n**Correlations/matrices:** `heatmap`, `clustermap`\n**Pairwise relationships:** `pairplot`, `jointplot`\n\n### 3. Use Figure-Level Functions for Faceting\n\n```python\n# Instead of manual subplot creation\nsns.relplot(data=df, x='x', y='y', col='category', col_wrap=3)\n\n# Not: Creating subplots manually for simple faceting\n```\n\n### 4. Leverage Semantic Mappings\n\nUse `hue`, `size`, and `style` to encode additional dimensions:\n\n```python\nsns.scatterplot(data=df, x='x', y='y',\n                hue='category',      # Color by category\n                size='importance',    # Size by continuous variable\n                style='type')         # Marker style by type\n```\n\n### 5. Control Statistical Estimation\n\nMany functions compute statistics automatically. Understand and customize:\n\n```python\n# Lineplot computes mean and 95% CI by default\nsns.lineplot(data=df, x='time', y='value',\n             errorbar='sd')  # Use standard deviation instead\n\n# Barplot computes mean by default\nsns.barplot(data=df, x='category', y='value',\n            estimator='median',  # Use median instead\n            errorbar=('ci', 95))  # Bootstrapped CI\n```\n\n### 6. Combine with Matplotlib\n\nSeaborn integrates seamlessly with matplotlib for fine-tuning:\n\n```python\nax = sns.scatterplot(data=df, x='x', y='y')\nax.set(xlabel='Custom X Label', ylabel='Custom Y Label',\n       title='Custom Title')\nax.axhline(y=0, color='r', linestyle='--')\nplt.tight_layout()\n```\n\n### 7. Save High-Quality Figures\n\n```python\nfig = sns.relplot(data=df, x='x', y='y', col='group')\nfig.savefig('figure.png', dpi=300, bbox_inches='tight')\nfig.savefig('figure.pdf')  # Vector format for publications\n```\n\n## Common Patterns\n\n### Exploratory Data Analysis\n\n```python\n# Quick overview of all relationships\nsns.pairplot(data=df, hue='target', corner=True)\n\n# Distribution exploration\nsns.displot(data=df, x='variable', hue='group',\n            kind='kde', fill=True, col='category')\n\n# Correlation analysis\ncorr = df.corr()\nsns.heatmap(corr, annot=True, cmap='coolwarm', center=0)\n```\n\n### Publication-Quality Figures\n\n```python\nsns.set_theme(style='ticks', context='paper', font_scale=1.1)\n\ng = sns.catplot(data=df, x='treatment', y='response',\n                col='cell_line', kind='box', height=3, aspect=1.2)\ng.set_axis_labels('Treatment Condition', 'Response (μM)')\ng.set_titles('{col_name}')\nsns.despine(trim=True)\n\ng.savefig('figure.pdf', dpi=300, bbox_inches='tight')\n```\n\n### Complex Multi-Panel Figures\n\n```python\n# Using matplotlib subplots with seaborn\nfig, axes = plt.subplots(2, 2, figsize=(12, 10))\n\nsns.scatterplot(data=df, x='x1', y='y', hue='group', ax=axes[0, 0])\nsns.histplot(data=df, x='x1', hue='group', ax=axes[0, 1])\nsns.violinplot(data=df, x='group', y='y', ax=axes[1, 0])\nsns.heatmap(df.pivot_table(values='y', index='x1', columns='x2'),\n            ax=axes[1, 1], cmap='viridis')\n\nplt.tight_layout()\n```\n\n### Time Series with Confidence Bands\n\n```python\n# Lineplot automatically aggregates and shows CI\nsns.lineplot(data=timeseries, x='date', y='measurement',\n             hue='sensor', style='location', errorbar='sd')\n\n# For more control\ng = sns.relplot(data=timeseries, x='date', y='measurement',\n                col='location', hue='sensor', kind='line',\n                height=4, aspect=1.5, errorbar=('ci', 95))\ng.set_axis_labels('Date', 'Measurement (units)')\n```\n\n## Troubleshooting\n\n### Issue: Legend Outside Plot Area\n\nFigure-level functions place legends outside by default. To move inside:\n\n```python\ng = sns.relplot(data=df, x='x', y='y', hue='category')\ng._legend.set_bbox_to_anchor((0.9, 0.5))  # Adjust position\n```\n\n### Issue: Overlapping Labels\n\n```python\nplt.xticks(rotation=45, ha='right')\nplt.tight_layout()\n```\n\n### Issue: Figure Too Small\n\nFor figure-level functions:\n```python\nsns.relplot(data=df, x='x', y='y', height=6, aspect=1.5)\n```\n\nFor axes-level functions:\n```python\nfig, ax = plt.subplots(figsize=(10, 6))\nsns.scatterplot(data=df, x='x', y='y', ax=ax)\n```\n\n### Issue: Colors Not Distinct Enough\n\n```python\n# Use a different palette\nsns.set_palette(\"bright\")\n\n# Or specify number of colors\npalette = sns.color_palette(\"husl\", n_colors=len(df['category'].unique()))\nsns.scatterplot(data=df, x='x', y='y', hue='category', palette=palette)\n```\n\n### Issue: KDE Too Smooth or Jagged\n\n```python\n# Adjust bandwidth\nsns.kdeplot(data=df, x='x', bw_adjust=0.5)  # Less smooth\nsns.kdeplot(data=df, x='x', bw_adjust=2)    # More smooth\n```\n\n## Resources\n\nThis skill includes reference materials for deeper exploration:\n\n### references/\n\n- `function_reference.md` - Comprehensive listing of all seaborn functions with parameters and examples\n- `objects_interface.md` - Detailed guide to the modern seaborn.objects API\n- `examples.md` - Common use cases and code patterns for different analysis scenarios\n\nLoad reference files as needed for detailed function signatures, advanced parameters, or specific examples.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["seaborn","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-seaborn","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/seaborn","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34583 github stars · SKILL.md body (19,784 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T18:52:11.654Z","embedding":null,"createdAt":"2026-04-18T21:44:00.774Z","updatedAt":"2026-04-22T18:52:11.654Z","lastSeenAt":"2026-04-22T18:52:11.654Z","tsv":"'0':1041,1255,1256,1264,1276,1410,1467,1630,2045,2125,2208,2209,2219,2231 '0.1':630 '0.5':2335,2446 '0.9':2334 '1':125,1052,1265,1275,1286,1287,1411,1414,1415,1470,1798,2220,2230,2243,2244 '1.1':2139 '1.2':1377,1782,2156 '1.5':2294,2369 '10':1054,1055,1244,1245,1661,1741,2196,2380 '10.5':1413,1468 '12':2195 '12.3':1417,1469 '13.1':1425,1472 '2':140,943,1241,1242,1418,1419,1423,1847,2192,2193,2456 '250':1660 '2d':985 '2f':1002,1037 '3':153,1375,1422,1882,1907,2154 '300':2071,2174 '4':165,1915,2292 '45':2344 '5':179,628,1953 '6':2009,2367,2381 '7':2051 '8':1641 '9.8':1421,1471 '95':906,945,1970,2006,2297 'abstract':138 'accept':1199 'across':548,659,667,1453 'add':347,351 'addit':409,741,1926 'adjust':576,2336,2437,2445,2455 'advanc':2508 'advantag':1426 'aesthet':166,1667 'aggreg':159,387,2257 'algorithm':686 'alway':1801 'analysi':24,105,269,1343,2085,2115,2497 'annot':976,991,1000,1034,2120 'api':74,291,2487 'appear':1674,1699 'arbitrari':1440 'area':584,2309 'array':990,1484,1836,1840,1843 'ask':2546 'aspect':1316,1376,2155,2293,2368 'assess':875 'automat':25,106,143,386,397,1359,1961,2256 'avoid':1834 'awar':155 'ax':1200,1253,1262,1273,1284,2023,2206,2217,2228,2241,2377,2389,2390 'ax.axhline':2043 'ax.set':2031 'axe':247,253,856,1170,1183,1191,1206,1239,1254,1263,1274,1285,2190,2207,2218,2229,2242,2372 'axes-level':246,855,1169,1182,2371 'axi':1727,1845,2158,2299 'background':1696,1702,1709,1715,1720,1725 'band':2253 'bandwidth':578,2438 'bar':500,773,809,813 'bar-bas':499 'barplot':705,1987 'base':501,1074 'bbox':2072,2175 'beeswarm':685 'best':1796 'bill':220,344,441,472,606,622,640,788,804,821,838,925,937,953,1111,1156,1819,1820,1829 'bin':506,570,573 'binwidth':571 'bivari':487,535,538,613,1144 'blue':1609,1613 'bootstrap':2007 'bottom':1738 'boundari':2554 'box':178,771,842,2152 'boxenplot':697 'boxplot':689,699,1211,1866 'bright':1532,2403 'build':295,323,1217 'built':157,1299 'built-in':156,1298 'bw':575,2444,2454 'call':1081 'cannot':1321 'care':1504 'case':1474,1763,2491 'cat':1270 'categor':656,670,727,739,742,829,1076,1514,1863 'categori':244,357,463,563,660,669,721,748,1369,1517,1793,1904,1937,1940,1996,2113,2332,2417,2427 'categorical/continuous':410 'catplot':725,768,1089,1330 'cell':995,1022,1026,2149 'center':1006,1010,1040,1601,1629,2124 'chain':298 'chang':385 'check':946 'choos':1848 'ci':390,827,901,944,1971,2005,2008,2260,2296 'clarif':2548 'clear':2521 'cluster':980,1044 'clustermap':977,1877 'cmap':1003,1038,1048,1586,1595,1627,1651,1663,2122,2245 'code':36,66,117,1236,2493 'col':420,475,839,940,1102,1303,1368,1903,1905,2066,2112,2148,2166,2285 'color':150,173,349,406,972,1016,1500,1506,1524,1541,1938,2046,2392,2408,2414 'color-encod':971 'colorblind':1538,1547 'colormap':1004,1009,1013 'column':1390,1454,1809,1814,2239 'combin':1143,1223,1353,2010 'common':2081,2489 'compar':663 'comparison':62,658,688,796 'compat':183 'complet':1677 'complex':29,110,311,1066,1196,1441,2178 'compos':290 'comprehens':2470 'comput':389,1959,1967,1988 'condit':1408,1496,2161 'confid':163,453,708,902,2252 'connect':714 'consist':1344 'context':1757,1778,1784,1787,2135 'continu':1853,1855,1861,1870,1945 'contour':616 'control':320,574,747,1231,1412,1420,1465,1672,1695,1954,2276 'convert':1486 'cool':1617 'coolwarm':1039,1616,2123 'coordin':139 'core':123,226 'corner':654,2097 'corr':1030,1033,2116,2119 'correl':964,1028,1478,1625,2114 'correlations/matrices':1875 'count':566,717 'countplot':716 'creat':9,90,211,1065,1072,1634,1909 'creation':1895 'crest':1571 'criteria':2557 'crucial':1177 'cumul':516 'curv':586 'custom':186,324,911,1096,1218,1631,1635,1637,1964,2033,2037,2041 'dark':1535,1536,1644,1713 'darkgrid':1700 'data':145,216,302,340,437,456,468,492,602,618,636,650,782,798,815,832,921,933,949,959,969,984,1047,1152,1247,1258,1267,1278,1362,1378,1384,1449,1459,1485,1510,1515,1554,1585,1589,1602,1751,1790,1799,1826,1897,1930,1975,1993,2025,2060,2084,2093,2102,2142,2198,2211,2222,2262,2279,2325,2360,2383,2420,2440,2450 'datafram':132,988,1444,1806,1816 'dataset':20,53,72,101,127,206,209,549,702,987,1124 'dataset-ori':19,71,100,126 'date':459,2265,2282,2301 'day':224,350,785,801,818,835,1823,1824,1833 'declar':289,337 'deep':1521 'deeper':2466 'default':77,167,905,1522,1691,1706,1766,1973,1991,2318 'defici':1543 'densiti':497,509,569,599,610 'desatur':1531 'describ':2525 'design':118,1505 'detail':2481,2505 'deviat':1604,1985 'df':207,217,341,438,469,603,619,637,651,783,799,816,833,922,934,950,1101,1128,1153,1248,1259,1268,1279,1363,1491,1590,1752,1791,1817,1827,1898,1931,1976,1994,2026,2061,2094,2103,2143,2199,2212,2223,2326,2361,2384,2416,2421,2441,2451 'df.corr':1031,2117 'df.melt':1493 'df.pivot':2233 'diag':1138 'differ':1224,1509,1761,2399,2496 'dimens':1927 'direct':50,130,1094 'discret':668 'display':376,992 'displot':527,1088,1329 'distinct':1175,2394 'distinguish':1516 'distribut':59,483,488,503,517,536,542,561,664,687,1148,2099 'diverg':1012,1599,1622,1653 'dodg':594,750 'dpi':2070,2173 'e.g':1001 'easi':1432 'easili':1194 'ecdfplot':514,1874 'effect':1179 'element':1759 'emphas':1603 'empir':515 'encod':407,415,419,973,1925 'enhanc':698 'enough':2395 'entir':260,1293 'environ':2537 'environment-specif':2536 'error':160,812 'errorbar':826,1981,2004,2272,2295 'estim':27,108,161,510,704,712,824,1956,1999 'exampl':205,1208,1327,2479,2512 'examples.md':2488 'exist':1234,1325 'expert':2542 'explor':56,365,2100,2467 'exploratori':268,1342,2083 'facet':263,398,422,464,726,828,869,931,1301,1337,1360,1889,1914 'facetgrid':1071,1308 'fals':1737,1739 'fig':1238,2058,2189,2376 'fig.savefig':2068,2075 'figsiz':1053,1243,2194,2379 'figur':33,114,256,261,393,427,529,723,866,1070,1084,1166,1198,1289,1294,1326,1885,2056,2129,2182,2311,2350,2355 'figure-level':255,392,426,528,722,865,1083,1165,1288,1884,2310,2354 'figure.pdf':2076,2172 'figure.png':2069 'file':2501 'fill':582,583,595,625,1597,2110 'fine':318,2020 'fine-grain':317 'fine-tun':2019 'fit':862,877,890 'flare':1570 'flexibl':505,1401 'fmt':996,1036 'follow':121 'font':1685,1780,2137 'forc':1020 'form':1383,1405,1448,1463 'format':997,1398,1775,2078 'frequenc':502,567 'full':182 'function':229,233,238,249,258,355,1086,1172,1185,1291,1431,1887,1958,2313,2357,2374,2475,2506 'function_reference.md':2469 'g':1099,1126,1150,2140,2277,2323 'g._legend.set_bbox_to_anchor':2333 'g.add':1113,1140 'g.map':1108,1131,1134,1137 'g.plot':1159,1162 'g.savefig':2171 'g.set':2157,2164,2298 'gap':1024 'gaussian':512 'generat':329 'ggplot2':294 'good':1567,1574,1812 'gradient':1645 'grain':319 'graphic':14,49,95 'gray':1701,1711,1714 'grid':967,1059,1062,1698,1705,1712,1717,1722 'grid-structur':966 'group':61,743,1371,2067,2107,2205,2216,2225 'guid':2482 'h':762 'ha':2345 'handl':590 'heatmap':970,981,1029,1045,1213,1480,1569,1876 'height':1314,1374,2153,2291,2366 'hierarch':979 'hierarchically-clust':978 'high':1533,1560,2054 'high-qual':2053 'higher':580 'histogram':572,597 'histplot':498,1210,1872 'horizont':763 'hue':223,405,444,462,479,559,591,607,645,652,740,745,752,789,805,822,1106,1129,1372,1519,1656,1832,1920,1936,2095,2106,2204,2215,2268,2287,2331,2426 'husl':1640,2412 'icefir':1612 'import':192,196,200,333,1942 'inch':2073,2176 'includ':1295,2462 'index':2237 'individu':377,523 'inform':696 'input':2551 'insid':2321 'instead':1891,1986,2003 'integr':181,1193,1232,2014 'interfac':228,230,234,282,286,395,531 'interv':164,454,709,903 'issu':2305,2338,2349,2391,2430 'jag':2435 'jitter':675 'joint':631,1160 'jointgrid':1142,1309 'jointplot':537,1332,1881 'kde':577,614,694,2109,2431 'kdeplot':507,1859,1873 'kernel':513 'key':399,550,732,878,982 'kind':481,643,730,764,841,2108,2151,2289 'kws':908,910 'label':1846,2035,2039,2159,2300,2340 'larg':1774 'larger':701,1769 'layer':312,592 'layout':1222,1348,2050,2248,2348 'left':1736 'legend':1114,1141,2306,2315 'len':2415 'less':897,1527,2447 'level':248,257,394,428,530,627,724,753,857,867,1085,1167,1171,1184,1230,1290,1886,2312,2356,2373 'leverag':1916 'librari':7,88 'light':1530,1642 'limit':1018,2513 'line':450,715,863,909,914,2150,2290 'linear':845,850,918 'lineplot':381,1858,1966,2255 'linestyl':2048 'linewidth':1023 'list':2471 'lmplot':864,1331 'load':204,2499 'locat':2271,2286 'logist':889,891 'long':1382,1404,1489,1492 'long-form':1381,1403 'lose':1844 'low':1558 'lower':1135 'lumin':1565,1573 'magma':1578 'mako':1563,1596 'manag':259,1292 'mani':1957 'manual':1893,1911 'map':142,303,435,1918 'margin':541,634,1147,1163 'mark':304,526 'marker':1949 'marker/line':417 'match':2522 'materi':2464 'matplotlib':81,180,185,1190,1197,1229,1235,1580,2012,2017,2185 'matplotlib-level':1228 'matplotlib.pyplot':197 'matric':963,1479 'matrix':544,956,974,1626 'maximum':1400 'mean':825,1968,1989 'mean/aggregate':706 'meaning':1808 'measur':1409,1499,2267,2284,2302 'median':2000,2002 'method':299 'midpoint':1607 'minim':35,64,116 'miss':2559 'model':876 'modern':283,2485 'move':2320 'multi':31,112,1057,1068,1220,1346,2180 'multi-panel':30,111,1067,1345,2179 'multi-plot':1056,1219 'multipl':424,433,587,611,1340 'multipli':579 'multivari':23,57,104 'mute':1525 'n':2413 'name':134,1005,1495,1498,1810,1813,2167 'natur':1442 'need':44,188,276,316,1227,1351,2503 'non':682 'non-overlap':681 'normal':565,600 'notebook':1767 'number':2406 'object':281,334,1063,1192,1207,1312 'objects_interface.md':2480 'observ':378,524,679,719,1392 'offset':1740 'one':737,1869 'oper':1445 'option':556 'orang':1615 'order':744,746,749,885,888,942,1553 'organ':239 'orient':21,73,102,128,758 'outlier':692,900 'output':2531 'outsid':2307,2316 'overal':1673 'overlap':683,2339 'overview':82,2088 'pairgrid':1115,1311 'pairplot':543,1333,1880 'pairwis':546,647,1117,1878 'palett':174,1501,1507,1513,1546,1549,1552,1600,1632,1636,1639,1646,1648,1654,1657,1659,1683,2400,2402,2409,2411,2428,2429 'panda':201 'panel':32,113,1069,1347,2181 'paper':1764,2136 'paramet':400,519,551,731,733,879,983,1201,1306,2477,2509 'pastel':1529,1684 'pattern':2082,2494 'pd':203 'pd.dataframe':1818 'per':720,1319 'perceptu':1581 'permiss':2552 'philosophi':119 'place':1323,2314 'placement':1204 'plasma':1579 'plot':22,65,103,227,237,250,279,325,328,354,359,451,466,484,539,632,657,728,765,777,792,810,830,844,859,873,957,1058,1097,1145,1186,1221,1225,1356,1482,1851,2308 'plt':199 'plt.show':225 'plt.subplots':1240,2191,2378 'plt.tight':2049,2247,2347 'plt.xticks':2342 'point':380,673,684,711,774,780 'point/line':413 'pointplot':710 'points/lines':1576 'polynomi':886,928 'posit':2337 'poster':1773,1788 'practic':1797 'precis':1203 'prefer':1385 'prepar':1800 'present':1771 'primari':403 'principl':124 'probabl':496,568 'programmat':327 'progress':1556 'properti':149,915,1438 'provid':235,287,1061,1399,1503 'public':11,46,92,169,2080,2127 'publication-qu':10,45,91,2126 'publication-readi':168 'purpos':272 'python':5,86,191,330,430,596,775,916,1027,1098,1125,1149,1237,1358,1402,1460,1490,1544,1583,1623,1633,1675,1729,1776,1811,1890,1928,1965,2022,2057,2086,2130,2183,2254,2322,2341,2358,2375,2396,2436 'qualit':1512 'qualiti':12,47,93,2055,2128 'quartil':690,695 'quick':189,267,1341,1481,2087 'r':2047 'rainbow':1621 'rang':1566 'rather':136 'readi':170 'rectangular':958,986,1458 'red':1611 'refer':2463,2468,2500 'regplot':854,1212,1860 'regress':843,851,858,884,887,892,896,919,929 'relat':358,371,465 'relationship':58,360,547,648,846,1118,1879,2091 'relplot':391,1087,1328 'remap':1434 'remov':1733 'requir':1380,2550 'reset':1689 'residplot':871 'residu':853,872,947 'resourc':2459 'respons':2147,2162 'restrict':1572 'return':1205,1307 'review':2543 'right':1850,2346 'robust':893,895 'rocket':1562,1587 'rotat':2343 'row':421,477,1104,1305,1370,1395 'rugplot':522 'safe':1539 'safeti':2553 'san':1687 'sans-serif':1686 'satur':1528,1534 'save':2052 'scale':307,1017,1051,1758,1781,2138 'scatter':431,482,644,861,907,912 'scatterplot':375,671,1209,1857 'scenario':2498 'scope':2524 'sd':1982,2273 'seaborn':1,2,37,69,83,120,193,332,1060,1180,1430,1502,2013,2188,2474 'seaborn.objects':285,2486 'seagreen':1649 'seamless':2015 'semant':141,434,1917 'sensit':898 'sensor':2269,2288 'separ':560,751 'sequenti':1551 'seri':1477,2250 'serif':1688 'set':729,1668,1670,1676 'set2':1550 'sex':449,478,790,806,823,1105 'shape':494 'show':382,677,778,1116,1555,2259 'side':755,757 'side-by-sid':754 'signatur':2507 'similar':292 'simpl':213,917,1457,1475,1913 'singl':252,271,485,1189 'single-purpos':270 'size':151,412,414,446,447,1318,1921,1941,1943 'skill':17,98,2461,2516 'skill-seaborn' 'slide':1772 'slight':1768 'small':1339,2352 'smallest':1765 'smoker':480,1107 'smooth':508,2433,2448,2458 'smoother':581 'sns':195 'sns.axes':1747 'sns.barplot':814,1789,1992 'sns.boxplot':1266 'sns.catplot':831,2141 'sns.clustermap':1046 'sns.color':1548,1638,2410 'sns.despine':1735,2168 'sns.displot':2101 'sns.diverging':1658 'sns.facetgrid':1100 'sns.heatmap':1032,1584,1624,2118,2232 'sns.histplot':601,1139,1164,1257,2210 'sns.jointgrid':1151 'sns.jointplot':635 'sns.kdeplot':617,1136,1277,1588,2439,2449 'sns.light':1647 'sns.lineplot':455,1974,2261 'sns.lmplot':932 'sns.load':208 'sns.pairgrid':1127 'sns.pairplot':649,2092 'sns.plotting':1786 'sns.regplot':920 'sns.relplot':467,1361,1896,2059,2278,2324,2359 'sns.residplot':948 'sns.scatterplot':215,436,1109,1133,1161,1246,1750,1825,1837,1929,2024,2197,2382,2419 'sns.set':1545,1679,1692,1730,1777,2131,2401 'sns.swarmplot':781 'sns.violinplot':797,2221 'so.dot':348 'so.line':352 'so.plot':339 'so.polyfit':353 'softer':1526 'source-sickn33' 'speci':653,1130 'special':236 'specif':278,2511,2538 'specifi':301,2405 'spectral':1620 'spine':1734 'split':794,807 'spread':493,1452 'squar':1019,1021,1042 'stack':593,612 'standard':1050,1984 'start':190 'stat':564,609 'statist':13,26,38,48,76,94,107,154,666,703,1955,1960 'stop':2544 'string':998 'strip':769 'stripplot':672,1867 'structur':968,1379,1406,1464,1805 'style':152,416,418,448,1681,1694,1731,1745,1748,1923,1947,1950,2133,2270 'subject':1407 'subplot':425,1073,1297,1320,1894,1910,2186 'substitut':2534 'success':2556 'support':870,1439 'swarm':770,776 'swarmplot':680,1868 'syntax':338 'tabl':2234 'tabular':52 'talk':1770,1779 'target':2096 'task':2520 'temporari':1744,1783 'test':2540 'theme':171,1665,1669,1671,1678,1680,1693,2132 'thresh':629 'tick':525,1723,1728,2134 'tidi':1397 'tight':2074,2177 'time':445,476,608,646,840,941,1103,1476,1978,2249 'timeseri':457,2263,2280 'tip':210,222,346,443,474,624,642,927,939,955,1112,1158,1821,1822,1831 'titl':2040,2042,2165 'top':79 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':219,343,440,471,605,621,639,787,803,820,837,924,936,952,1110,1155 'tradit':231 'transform':305,322 'translat':144 'treat':2529 'treatment':1416,1424,1466,2145,2160 'trend':383 'trim':1742,2169 'troubleshoot':2304 'true':626,655,808,1035,1043,1598,1652,1664,1743,2098,2111,2121,2170 'tune':521,2021 'two':367 'type':242,280,326,766,1226,1357,1373,1511,1852,1948,1952 'typic':738 'understand':491,1173,1962 'uniform':1582 'uniqu':2418 'unit':2303 'univari':533,558 'unnam':1835 'upper':1132 'usag':1181 'use':15,42,96,266,310,363,489,511,661,847,894,960,1079,1093,1216,1313,1336,1455,1473,1762,1802,1883,1919,1983,2001,2184,2397,2490,2514 'v':759 'valid':2539 'valu':146,461,993,1007,1497,1537,1561,1795,1980,1998,2235 'var':1494 'variabl':135,362,370,404,411,554,736,882,1077,1121,1387,1435,1450,1871,1946,2105 'variat':1520 'vector':2077 'vertic':760 'via':1302 'violin':772,791 'violinplot':693,1865 'viridi':1049,1577,2246 'vision':1542 'visual':6,39,87,148,214,241,273,296,313,849,962,1338,1437 'vivid':1523 'vlag':1608,1628 'vmax':1015 'vmin':1014 'vs':1168 'want':68 'warm':1619 'well':1804 'well-structur':1803 'white':1704,1708,1718,1719,1724,1749 'whitegrid':1682,1707,1732 'wide':1447,1462,1487,1564 'wide-form':1446,1461 'width':904 'work':129,1427 'wrap':1906 'x':218,342,401,439,458,470,552,604,620,638,734,784,800,817,834,880,923,935,951,1154,1249,1250,1260,1261,1269,1280,1281,1364,1365,1591,1592,1753,1754,1792,1828,1838,1839,1854,1862,1899,1900,1932,1933,1977,1995,2027,2028,2034,2062,2063,2104,2144,2200,2213,2224,2264,2281,2327,2328,2362,2363,2385,2386,2422,2423,2442,2443,2452,2453 'x1':2201,2214,2238 'x2':2240 'xlabel':2032 'y':221,345,402,442,460,473,553,555,623,641,735,786,802,819,836,881,926,938,954,1157,1251,1252,1271,1272,1282,1283,1366,1367,1593,1594,1755,1756,1794,1830,1841,1842,1856,1864,1901,1902,1934,1935,1979,1997,2029,2030,2038,2044,2064,2065,2146,2202,2203,2226,2227,2236,2266,2283,2329,2330,2364,2365,2387,2388,2424,2425 'ylabel':2036 'μm':2163","prices":[{"id":"72ee8df1-0b7c-4cca-bda4-6618d818b160","listingId":"1c0f1505-89e5-48a4-8355-9945c972243e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:44:00.774Z"}],"sources":[{"listingId":"1c0f1505-89e5-48a4-8355-9945c972243e","source":"github","sourceId":"sickn33/antigravity-awesome-skills/seaborn","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/seaborn","isPrimary":false,"firstSeenAt":"2026-04-18T21:44:00.774Z","lastSeenAt":"2026-04-22T18:52:11.654Z"}],"details":{"listingId":"1c0f1505-89e5-48a4-8355-9945c972243e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"seaborn","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34583,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"21516baf4dc00dd1af68a6356e04c4a44e575208","skill_md_path":"skills/seaborn/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/seaborn"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"seaborn","license":"BSD-3-Clause license","description":"Seaborn is a Python visualization library for creating publication-quality statistical graphics. Use this skill for dataset-oriented plotting, multivariate analysis, automatic statistical estimation, and complex multi-panel figures with minimal code."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/seaborn"},"updatedAt":"2026-04-22T18:52:11.654Z"}}