{"id":"b522b119-59db-4eec-bddf-d02a9711ce51","shortId":"ZrdXEf","kind":"skill","title":"matplotlib","tagline":"Matplotlib is Python's foundational visualization library for creating static, animated, and interactive plots.","description":"# Matplotlib\n\n## Overview\n\nMatplotlib is Python's foundational visualization library for creating static, animated, and interactive plots. This skill provides guidance on using matplotlib effectively, covering both the pyplot interface (MATLAB-style) and the object-oriented API (Figure/Axes), along with best practices for creating publication-quality visualizations.\n\n## When to Use This Skill\n\nThis skill should be used when:\n- Creating any type of plot or chart (line, scatter, bar, histogram, heatmap, contour, etc.)\n- Generating scientific or statistical visualizations\n- Customizing plot appearance (colors, styles, labels, legends)\n- Creating multi-panel figures with subplots\n- Exporting visualizations to various formats (PNG, PDF, SVG, etc.)\n- Building interactive plots or animations\n- Working with 3D visualizations\n- Integrating plots into Jupyter notebooks or GUI applications\n\n## Core Concepts\n\n### The Matplotlib Hierarchy\n\nMatplotlib uses a hierarchical structure of objects:\n\n1. **Figure** - The top-level container for all plot elements\n2. **Axes** - The actual plotting area where data is displayed (one Figure can contain multiple Axes)\n3. **Artist** - Everything visible on the figure (lines, text, ticks, etc.)\n4. **Axis** - The number line objects (x-axis, y-axis) that handle ticks and labels\n\n### Two Interfaces\n\n**1. pyplot Interface (Implicit, MATLAB-style)**\n```python\nimport matplotlib.pyplot as plt\n\nplt.plot([1, 2, 3, 4])\nplt.ylabel('some numbers')\nplt.show()\n```\n- Convenient for quick, simple plots\n- Maintains state automatically\n- Good for interactive work and simple scripts\n\n**2. Object-Oriented Interface (Explicit)**\n```python\nimport matplotlib.pyplot as plt\n\nfig, ax = plt.subplots()\nax.plot([1, 2, 3, 4])\nax.set_ylabel('some numbers')\nplt.show()\n```\n- **Recommended for most use cases**\n- More explicit control over figure and axes\n- Better for complex figures with multiple subplots\n- Easier to maintain and debug\n\n## Common Workflows\n\n### 1. Basic Plot Creation\n\n**Single plot workflow:**\n```python\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Create figure and axes (OO interface - RECOMMENDED)\nfig, ax = plt.subplots(figsize=(10, 6))\n\n# Generate and plot data\nx = np.linspace(0, 2*np.pi, 100)\nax.plot(x, np.sin(x), label='sin(x)')\nax.plot(x, np.cos(x), label='cos(x)')\n\n# Customize\nax.set_xlabel('x')\nax.set_ylabel('y')\nax.set_title('Trigonometric Functions')\nax.legend()\nax.grid(True, alpha=0.3)\n\n# Save and/or display\nplt.savefig('plot.png', dpi=300, bbox_inches='tight')\nplt.show()\n```\n\n### 2. Multiple Subplots\n\n**Creating subplot layouts:**\n```python\n# Method 1: Regular grid\nfig, axes = plt.subplots(2, 2, figsize=(12, 10))\naxes[0, 0].plot(x, y1)\naxes[0, 1].scatter(x, y2)\naxes[1, 0].bar(categories, values)\naxes[1, 1].hist(data, bins=30)\n\n# Method 2: Mosaic layout (more flexible)\nfig, axes = plt.subplot_mosaic([['left', 'right_top'],\n                                 ['left', 'right_bottom']],\n                                figsize=(10, 8))\naxes['left'].plot(x, y)\naxes['right_top'].scatter(x, y)\naxes['right_bottom'].hist(data)\n\n# Method 3: GridSpec (maximum control)\nfrom matplotlib.gridspec import GridSpec\nfig = plt.figure(figsize=(12, 8))\ngs = GridSpec(3, 3, figure=fig)\nax1 = fig.add_subplot(gs[0, :])  # Top row, all columns\nax2 = fig.add_subplot(gs[1:, 0])  # Bottom two rows, first column\nax3 = fig.add_subplot(gs[1:, 1:])  # Bottom two rows, last two columns\n```\n\n### 3. Plot Types and Use Cases\n\n**Line plots** - Time series, continuous data, trends\n```python\nax.plot(x, y, linewidth=2, linestyle='--', marker='o', color='blue')\n```\n\n**Scatter plots** - Relationships between variables, correlations\n```python\nax.scatter(x, y, s=sizes, c=colors, alpha=0.6, cmap='viridis')\n```\n\n**Bar charts** - Categorical comparisons\n```python\nax.bar(categories, values, color='steelblue', edgecolor='black')\n# For horizontal bars:\nax.barh(categories, values)\n```\n\n**Histograms** - Distributions\n```python\nax.hist(data, bins=30, edgecolor='black', alpha=0.7)\n```\n\n**Heatmaps** - Matrix data, correlations\n```python\nim = ax.imshow(matrix, cmap='coolwarm', aspect='auto')\nplt.colorbar(im, ax=ax)\n```\n\n**Contour plots** - 3D data on 2D plane\n```python\ncontour = ax.contour(X, Y, Z, levels=10)\nax.clabel(contour, inline=True, fontsize=8)\n```\n\n**Box plots** - Statistical distributions\n```python\nax.boxplot([data1, data2, data3], labels=['A', 'B', 'C'])\n```\n\n**Violin plots** - Distribution densities\n```python\nax.violinplot([data1, data2, data3], positions=[1, 2, 3])\n```\n\nFor comprehensive plot type examples and variations, refer to `references/plot_types.md`.\n\n### 4. Styling and Customization\n\n**Color specification methods:**\n- Named colors: `'red'`, `'blue'`, `'steelblue'`\n- Hex codes: `'#FF5733'`\n- RGB tuples: `(0.1, 0.2, 0.3)`\n- Colormaps: `cmap='viridis'`, `cmap='plasma'`, `cmap='coolwarm'`\n\n**Using style sheets:**\n```python\nplt.style.use('seaborn-v0_8-darkgrid')  # Apply predefined style\n# Available styles: 'ggplot', 'bmh', 'fivethirtyeight', etc.\nprint(plt.style.available)  # List all available styles\n```\n\n**Customizing with rcParams:**\n```python\nplt.rcParams['font.size'] = 12\nplt.rcParams['axes.labelsize'] = 14\nplt.rcParams['axes.titlesize'] = 16\nplt.rcParams['xtick.labelsize'] = 10\nplt.rcParams['ytick.labelsize'] = 10\nplt.rcParams['legend.fontsize'] = 12\nplt.rcParams['figure.titlesize'] = 18\n```\n\n**Text and annotations:**\n```python\nax.text(x, y, 'annotation', fontsize=12, ha='center')\nax.annotate('important point', xy=(x, y), xytext=(x+1, y+1),\n            arrowprops=dict(arrowstyle='->', color='red'))\n```\n\nFor detailed styling options and colormap guidelines, see `references/styling_guide.md`.\n\n### 5. Saving Figures\n\n**Export to various formats:**\n```python\n# High-resolution PNG for presentations/papers\nplt.savefig('figure.png', dpi=300, bbox_inches='tight', facecolor='white')\n\n# Vector format for publications (scalable)\nplt.savefig('figure.pdf', bbox_inches='tight')\nplt.savefig('figure.svg', bbox_inches='tight')\n\n# Transparent background\nplt.savefig('figure.png', dpi=300, bbox_inches='tight', transparent=True)\n```\n\n**Important parameters:**\n- `dpi`: Resolution (300 for publications, 150 for web, 72 for screen)\n- `bbox_inches='tight'`: Removes excess whitespace\n- `facecolor='white'`: Ensures white background (useful for transparent themes)\n- `transparent=True`: Transparent background\n\n### 6. Working with 3D Plots\n\n```python\nfrom mpl_toolkits.mplot3d import Axes3D\n\nfig = plt.figure(figsize=(10, 8))\nax = fig.add_subplot(111, projection='3d')\n\n# Surface plot\nax.plot_surface(X, Y, Z, cmap='viridis')\n\n# 3D scatter\nax.scatter(x, y, z, c=colors, marker='o')\n\n# 3D line plot\nax.plot(x, y, z, linewidth=2)\n\n# Labels\nax.set_xlabel('X Label')\nax.set_ylabel('Y Label')\nax.set_zlabel('Z Label')\n```\n\n## Best Practices\n\n### 1. Interface Selection\n- **Use the object-oriented interface** (fig, ax = plt.subplots()) for production code\n- Reserve pyplot interface for quick interactive exploration only\n- Always create figures explicitly rather than relying on implicit state\n\n### 2. Figure Size and DPI\n- Set figsize at creation: `fig, ax = plt.subplots(figsize=(10, 6))`\n- Use appropriate DPI for output medium:\n  - Screen/notebook: 72-100 dpi\n  - Web: 150 dpi\n  - Print/publications: 300 dpi\n\n### 3. Layout Management\n- Use `constrained_layout=True` or `tight_layout()` to prevent overlapping elements\n- `fig, ax = plt.subplots(constrained_layout=True)` is recommended for automatic spacing\n\n### 4. Colormap Selection\n- **Sequential** (viridis, plasma, inferno): Ordered data with consistent progression\n- **Diverging** (coolwarm, RdBu): Data with meaningful center point (e.g., zero)\n- **Qualitative** (tab10, Set3): Categorical/nominal data\n- Avoid rainbow colormaps (jet) - they are not perceptually uniform\n\n### 5. Accessibility\n- Use colorblind-friendly colormaps (viridis, cividis)\n- Add patterns/hatching for bar charts in addition to colors\n- Ensure sufficient contrast between elements\n- Include descriptive labels and legends\n\n### 6. Performance\n- For large datasets, use `rasterized=True` in plot calls to reduce file size\n- Use appropriate data reduction before plotting (e.g., downsample dense time series)\n- For animations, use blitting for better performance\n\n### 7. Code Organization\n```python\n# Good practice: Clear structure\ndef create_analysis_plot(data, title):\n    \"\"\"Create standardized analysis plot.\"\"\"\n    fig, ax = plt.subplots(figsize=(10, 6), constrained_layout=True)\n\n    # Plot data\n    ax.plot(data['x'], data['y'], linewidth=2)\n\n    # Customize\n    ax.set_xlabel('X Axis Label', fontsize=12)\n    ax.set_ylabel('Y Axis Label', fontsize=12)\n    ax.set_title(title, fontsize=14, fontweight='bold')\n    ax.grid(True, alpha=0.3)\n\n    return fig, ax\n\n# Use the function\nfig, ax = create_analysis_plot(my_data, 'My Analysis')\nplt.savefig('analysis.png', dpi=300, bbox_inches='tight')\n```\n\n## Quick Reference Scripts\n\nThis skill includes helper scripts in the `scripts/` directory:\n\n### `plot_template.py`\nTemplate script demonstrating various plot types with best practices. Use this as a starting point for creating new visualizations.\n\n**Usage:**\n```bash\npython scripts/plot_template.py\n```\n\n### `style_configurator.py`\nInteractive utility to configure matplotlib style preferences and generate custom style sheets.\n\n**Usage:**\n```bash\npython scripts/style_configurator.py\n```\n\n## Detailed References\n\nFor comprehensive information, consult the reference documents:\n\n- **`references/plot_types.md`** - Complete catalog of plot types with code examples and use cases\n- **`references/styling_guide.md`** - Detailed styling options, colormaps, and customization\n- **`references/api_reference.md`** - Core classes and methods reference\n- **`references/common_issues.md`** - Troubleshooting guide for common problems\n\n## Integration with Other Tools\n\nMatplotlib integrates well with:\n- **NumPy/Pandas** - Direct plotting from arrays and DataFrames\n- **Seaborn** - High-level statistical visualizations built on matplotlib\n- **Jupyter** - Interactive plotting with `%matplotlib inline` or `%matplotlib widget`\n- **GUI frameworks** - Embedding in Tkinter, Qt, wxPython applications\n\n## Common Gotchas\n\n1. **Overlapping elements**: Use `constrained_layout=True` or `tight_layout()`\n2. **State confusion**: Use OO interface to avoid pyplot state machine issues\n3. **Memory issues with many figures**: Close figures explicitly with `plt.close(fig)`\n4. **Font warnings**: Install fonts or suppress warnings with `plt.rcParams['font.sans-serif']`\n5. **DPI confusion**: Remember that figsize is in inches, not pixels: `pixels = dpi * inches`\n\n## Additional Resources\n\n- Official documentation: https://matplotlib.org/\n- Gallery: https://matplotlib.org/stable/gallery/index.html\n- Cheatsheets: https://matplotlib.org/cheatsheets/\n- Tutorials: https://matplotlib.org/stable/tutorials/index.html\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":["matplotlib","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-matplotlib","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/matplotlib","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 · 34726 github stars · SKILL.md body (11,222 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-23T12:51:13.602Z","embedding":null,"createdAt":"2026-04-18T21:40:36.500Z","updatedAt":"2026-04-23T12:51:13.602Z","lastSeenAt":"2026-04-23T12:51:13.602Z","tsv":"'+1':742,744 '-100':961 '/cheatsheets/':1383 '/stable/gallery/index.html':1379 '/stable/tutorials/index.html':1387 '0':325,390,391,396,403,473,483 '0.1':662 '0.2':663 '0.3':358,664,1152 '0.6':540 '0.7':571 '1':147,204,217,255,290,378,397,402,408,409,482,493,494,632,905,1311 '10':317,388,431,602,712,715,854,951,1113 '100':328 '111':859 '12':387,461,703,718,731,1134,1141 '14':706,1146 '150':815,964 '16':709 '18':721 '2':158,218,240,256,326,370,384,385,415,519,633,889,938,1126,1321 '2d':593 '3':174,219,257,450,465,466,501,634,969,1333 '30':413,567 '300':365,776,802,812,967,1171 '3d':125,590,843,861,871,881 '4':185,220,258,645,994,1345 '5':759,1030,1357 '6':318,840,952,1058,1114 '7':1091 '72':818,960 '8':432,462,608,680,855 'access':1031 'actual':161 'add':1039 'addit':1045,1371 'along':55 'alpha':357,539,570,1151 'alway':928 'analysi':1101,1107,1162,1167 'analysis.png':1169 'and/or':360 'anim':12,28,122,1085 'annot':724,729 'api':53 'appear':97 'appli':682 'applic':134,1308 'appropri':954,1074 'area':163 'array':1280 'arrowprop':745 'arrowstyl':747 'artist':175 'ask':1421 'aspect':582 'auto':583 'automat':232,992 'avail':685,695 'avoid':1021,1328 'ax':252,314,586,587,856,915,948,984,1110,1155,1160 'ax.annotate':734 'ax.bar':548 'ax.barh':558 'ax.boxplot':614 'ax.clabel':603 'ax.contour':597 'ax.grid':355,1149 'ax.hist':564 'ax.imshow':578 'ax.legend':354 'ax.plot':254,329,336,515,864,884,1120 'ax.scatter':532,873 'ax.set':259,344,347,350,891,895,899,1128,1135,1142 'ax.text':726 'ax.violinplot':627 'ax1':469 'ax2':478 'ax3':489 'axe':159,173,275,309,382,389,395,401,407,421,433,438,444 'axes.labelsize':705 'axes.titlesize':708 'axes3d':850 'axi':186,193,196,1131,1138 'b':620 'background':798,831,839 'bar':85,404,543,557,1042 'bash':1208,1225 'basic':291 'bbox':366,777,789,794,803,821,1172 'best':57,903,1195 'better':276,1089 'bin':412,566 'black':554,569 'blit':1087 'blue':524,655 'bmh':688 'bold':1148 'bottom':429,446,484,495 'boundari':1429 'box':609 'build':118 'built':1289 'c':537,621,877 'call':1068 'case':268,506,1248 'catalog':1239 'categor':545 'categori':405,549,559 'categorical/nominal':1019 'center':733,1012 'chart':82,544,1043 'cheatsheet':1380 'cividi':1038 'clarif':1423 'class':1258 'clear':1097,1396 'close':1339 'cmap':541,580,666,668,670,869 'code':658,919,1092,1244 'color':98,523,538,551,649,653,748,878,1047 'colorblind':1034 'colorblind-friend':1033 'colormap':665,755,995,1023,1036,1253 'column':477,488,500 'common':288,1266,1309 'comparison':546 'complet':1238 'complex':278 'comprehens':636,1231 'concept':136 'configur':1215 'confus':1323,1359 'consist':1004 'constrain':973,986,1115,1315 'consult':1233 'contain':153,171 'continu':511 'contour':88,588,596,604 'contrast':1050 'control':271,453 'conveni':225 'coolwarm':581,671,1007 'core':135,1257 'correl':530,575 'cos':341 'cover':40 'creat':10,26,60,76,102,306,373,929,1100,1105,1161,1204 'creation':293,946 'criteria':1432 'custom':95,343,648,697,1127,1221,1255 'darkgrid':681 'data':165,322,411,448,512,565,574,591,1002,1009,1020,1075,1103,1119,1121,1123,1165 'data1':615,628 'data2':616,629 'data3':617,630 'datafram':1282 'dataset':1062 'debug':287 'def':1099 'demonstr':1190 'dens':1081 'densiti':625 'describ':1400 'descript':1054 'detail':751,1228,1250 'dict':746 'direct':1277 'directori':1186 'display':167,361 'distribut':562,612,624 'diverg':1006 'document':1236,1374 'downsampl':1080 'dpi':364,775,801,810,942,955,962,965,968,1170,1358,1369 'e.g':1014,1079 'easier':283 'edgecolor':553,568 'effect':39 'element':157,982,1052,1313 'embed':1303 'ensur':829,1048 'environ':1412 'environment-specif':1411 'etc':89,117,184,690 'everyth':176 'exampl':639,1245 'excess':825 'expert':1417 'explicit':245,270,931,1341 'explor':926 'export':109,762 'facecolor':780,827 'ff5733':659 'fig':251,313,381,420,458,468,851,914,947,983,1109,1154,1159,1344 'fig.add':470,479,490,857 'figsiz':316,386,430,460,853,944,950,1112,1362 'figur':106,148,169,180,273,279,307,467,761,930,939,1338,1340 'figure.pdf':788 'figure.png':774,800 'figure.svg':793 'figure.titlesize':720 'figure/axes':54 'file':1071 'first':487 'fivethirtyeight':689 'flexibl':419 'font':1346,1349 'font.sans':1355 'font.size':702 'fontsiz':607,730,1133,1140,1145 'fontweight':1147 'format':113,765,783 'foundat':6,22 'framework':1302 'friend':1035 'function':353,1158 'galleri':1376 'generat':90,319,1220 'ggplot':687 'good':233,1095 'gotcha':1310 'grid':380 'gridspec':451,457,464 'gs':463,472,481,492 'gui':133,1301 'guid':1264 'guidanc':35 'guidelin':756 'ha':732 'handl':198 'heatmap':87,572 'helper':1181 'hex':657 'hierarch':143 'hierarchi':139 'high':768,1285 'high-level':1284 'high-resolut':767 'hist':410,447 'histogram':86,561 'horizont':556 'im':577,585 'implicit':207,936 'import':212,247,298,302,456,735,808,849 'inch':367,778,790,795,804,822,1173,1365,1370 'includ':1053,1180 'inferno':1000 'inform':1232 'inlin':605,1297 'input':1426 'instal':1348 'integr':127,1268,1273 'interact':14,30,119,235,925,1212,1293 'interfac':44,203,206,244,311,906,913,922,1326 'issu':1332,1335 'jet':1024 'jupyt':130,1292 'label':100,201,333,340,618,890,894,898,902,1055,1132,1139 'larg':1061 'last':498 'layout':375,417,970,974,978,987,1116,1316,1320 'left':424,427,434 'legend':101,1057 'legend.fontsize':717 'level':152,601,1286 'librari':8,24 'limit':1388 'line':83,181,189,507,882 'linestyl':520 'linewidth':518,888,1125 'list':693 'machin':1331 'maintain':230,285 'manag':971 'mani':1337 'marker':521,879 'match':1397 'matlab':46,209 'matlab-styl':45,208 'matplotlib':1,2,16,18,38,138,140,1216,1272,1291,1296,1299 'matplotlib.gridspec':455 'matplotlib.org':1375,1378,1382,1386 'matplotlib.org/cheatsheets/':1381 'matplotlib.org/stable/gallery/index.html':1377 'matplotlib.org/stable/tutorials/index.html':1385 'matplotlib.pyplot':213,248,299 'matrix':573,579 'maximum':452 'meaning':1011 'medium':958 'memori':1334 'method':377,414,449,651,1260 'miss':1434 'mosaic':416,423 'mpl':847 'multi':104 'multi-panel':103 'multipl':172,281,371 'name':652 'new':1205 'notebook':131 'np':305 'np.cos':338 'np.linspace':324 'np.pi':327 'np.sin':331 'number':188,223,262 'numpi':303 'numpy/pandas':1276 'o':522,880 'object':51,146,190,242,911 'object-ori':50,241,910 'offici':1373 'one':168 'oo':310,1325 'option':753,1252 'order':1001 'organ':1093 'orient':52,243,912 'output':957,1406 'overlap':981,1312 'overview':17 'panel':105 'paramet':809 'patterns/hatching':1040 'pdf':115 'perceptu':1028 'perform':1059,1090 'permiss':1427 'pixel':1367,1368 'plane':594 'plasma':669,999 'plot':15,31,80,96,120,128,156,162,229,292,295,321,392,435,502,508,526,589,610,623,637,844,863,883,1067,1078,1102,1108,1118,1163,1192,1241,1278,1294 'plot.png':363 'plot_template.py':1187 'plt':215,250,301 'plt.close':1343 'plt.colorbar':584 'plt.figure':459,852 'plt.plot':216 'plt.rcparams':701,704,707,710,713,716,719,1354 'plt.savefig':362,773,787,792,799,1168 'plt.show':224,263,369 'plt.style.available':692 'plt.style.use':676 'plt.subplot':422 'plt.subplots':253,315,383,916,949,985,1111 'plt.ylabel':221 'png':114,770 'point':736,1013,1202 'posit':631 'practic':58,904,1096,1196 'predefin':683 'prefer':1218 'presentations/papers':772 'prevent':980 'print':691 'print/publications':966 'problem':1267 'product':918 'progress':1005 'project':860 'provid':34 'public':62,785,814 'publication-qu':61 'pyplot':43,205,921,1329 'python':4,20,211,246,297,376,514,531,547,563,576,595,613,626,675,700,725,766,845,1094,1209,1226 'qt':1306 'qualit':1016 'qualiti':63 'quick':227,924,1175 'rainbow':1022 'raster':1064 'rather':932 'rcparam':699 'rdbu':1008 'recommend':264,312,990 'red':654,749 'reduc':1070 'reduct':1076 'refer':642,1176,1229,1235,1261 'references/api_reference.md':1256 'references/common_issues.md':1262 'references/plot_types.md':644,1237 'references/styling_guide.md':758,1249 'regular':379 'relationship':527 'reli':934 'rememb':1360 'remov':824 'requir':1425 'reserv':920 'resolut':769,811 'resourc':1372 'return':1153 'review':1418 'rgb':660 'right':425,428,439,445 'row':475,486,497 'safeti':1428 'save':359,760 'scalabl':786 'scatter':84,398,441,525,872 'scientif':91 'scope':1399 'screen':820 'screen/notebook':959 'script':239,1177,1182,1185,1189 'scripts/plot_template.py':1210 'scripts/style_configurator.py':1227 'seaborn':678,1283 'seaborn-v0':677 'see':757 'select':907,996 'sequenti':997 'seri':510,1083 'serif':1356 'set':943 'set3':1018 'sheet':674,1223 'simpl':228,238 'sin':334 'singl':294 'size':536,940,1072 'skill':33,69,71,1179,1391 'skill-matplotlib' 'source-sickn33' 'space':993 'specif':650,1413 'standard':1106 'start':1201 'state':231,937,1322,1330 'static':11,27 'statist':93,611,1287 'steelblu':552,656 'stop':1419 'structur':144,1098 'style':47,99,210,646,673,684,686,696,752,1217,1222,1251 'style_configurator.py':1211 'subplot':108,282,372,374,471,480,491,858 'substitut':1409 'success':1431 'suffici':1049 'suppress':1351 'surfac':862,865 'svg':116 'tab10':1017 'task':1395 'templat':1188 'test':1415 'text':182,722 'theme':835 'tick':183,199 'tight':368,779,791,796,805,823,977,1174,1319 'time':509,1082 'titl':351,1104,1143,1144 'tkinter':1305 'tool':1271 'toolkits.mplot3d':848 'top':151,426,440,474 'top-level':150 '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' 'transpar':797,806,834,836,838 'treat':1404 'trend':513 'trigonometr':352 'troubleshoot':1263 'true':356,606,807,837,975,988,1065,1117,1150,1317 'tupl':661 'tutori':1384 'two':202,485,496,499 'type':78,503,638,1193,1242 'uniform':1029 'usag':1207,1224 'use':37,67,74,141,267,505,672,832,908,953,972,1032,1063,1073,1086,1156,1197,1247,1314,1324,1389 'util':1213 'v0':679 'valid':1414 'valu':406,550,560 'variabl':529 'variat':641 'various':112,764,1191 'vector':782 'violin':622 'viridi':542,667,870,998,1037 'visibl':177 'visual':7,23,64,94,110,126,1206,1288 'warn':1347,1352 'web':817,963 'well':1274 'white':781,828,830 'whitespac':826 'widget':1300 'work':123,236,841 'workflow':289,296 'wxpython':1307 'x':192,323,330,332,335,337,339,342,346,393,399,436,442,516,533,598,727,738,741,866,874,885,893,1122,1130 'x-axi':191 'xlabel':345,892,1129 'xtick.labelsize':711 'xy':737 'xytext':740 'y':195,349,437,443,517,534,599,728,739,743,867,875,886,897,1124,1137 'y-axi':194 'y1':394 'y2':400 'ylabel':260,348,896,1136 'ytick.labelsize':714 'z':600,868,876,887,901 'zero':1015 'zlabel':900","prices":[{"id":"1ea7c730-c6ee-4260-b588-0089e5921b26","listingId":"b522b119-59db-4eec-bddf-d02a9711ce51","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:40:36.500Z"}],"sources":[{"listingId":"b522b119-59db-4eec-bddf-d02a9711ce51","source":"github","sourceId":"sickn33/antigravity-awesome-skills/matplotlib","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/matplotlib","isPrimary":false,"firstSeenAt":"2026-04-18T21:40:36.500Z","lastSeenAt":"2026-04-23T12:51:13.602Z"}],"details":{"listingId":"b522b119-59db-4eec-bddf-d02a9711ce51","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"matplotlib","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34726,"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-23T06:41:03Z","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":"ddd47e259aa7d6257554f85fe63cf743d96fc419","skill_md_path":"skills/matplotlib/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/matplotlib"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"matplotlib","license":"https://github.com/matplotlib/matplotlib/tree/main/LICENSE","description":"Matplotlib is Python's foundational visualization library for creating static, animated, and interactive plots."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/matplotlib"},"updatedAt":"2026-04-23T12:51:13.602Z"}}