An open API service indexing awesome lists of open source software.

https://github.com/dazhiyang/scientific-plotting-skill

AI skill: publication-ready ggplot2 / plotnine figures, vector PDF, Wong + viridis.
https://github.com/dazhiyang/scientific-plotting-skill

colorblind cursor-rules ggplot2 latex pdf plotnine scientific-publications scientific-visualization

Last synced: 16 days ago
JSON representation

AI skill: publication-ready ggplot2 / plotnine figures, vector PDF, Wong + viridis.

Awesome Lists containing this project

README

          

# 📊 Scientific Publication Plotter (AI Skill)

[![License: MIT](https://img.shields.io/badge/License-MIT-22c55e?style=for-the-badge)](https://github.com/dazhiyang/scientific-plotting-skill/blob/main/LICENSE)
[![Single file](https://img.shields.io/badge/skill-single--file-8b5cf6?style=for-the-badge)](SKILL.md)
[![No dependencies](https://img.shields.io/badge/deps-none-64748b?style=for-the-badge)]()
[![GitHub](https://img.shields.io/badge/repo-scientific--plotting--skill-181717?style=for-the-badge&logo=github)](https://github.com/dazhiyang/scientific-plotting-skill)

## Overview

This repo ships **one** skill file, [`SKILL.md`](SKILL.md). Point your coding agent at it when you want **publication-style** figures: **ggplot2** in R or **plotnine** in Python, **vector PDF**, journal-friendly widths (**85 mm** / **180 mm**), **Wong** discrete colors, **viridis** with quantile splits for continuous color, and typography rules (single font size, **no plot title**—caption in the manuscript instead).

No bundled scripts: the agent generates code in your project from the rules in `SKILL.md`.

---

## Features

| | |
| :--- | :--- |
| 📏 **Sizing** | Default **85 mm** single column, **180 mm** when you need double column; prefer **flat** figures unless x and y are the same quantity. |
| 🔤 **Typography** | **Times** serif, **one** point size for **all** figure text; **no** plot title or subtitle on the canvas. |
| 📄 **Export** | **Vector PDF** (or EPS); raster only as an optional preview. |
| 🎨 **Color** | **Wong** order for discrete (≤8); **viridis** family + **equal-count quantiles** for continuous fields. |
| 🌐 **Stack** | **ggplot2** (R) and **plotnine** (Python) only for the figure code. |
| 🗺️ **Heavy plots** | Guidance for **dense scatter** (e.g. **scattermore** in R) and **low-resolution** map outlines so PDFs stay light. |

---

## Example prompts

Use wording close to your real task so the agent picks up the skill:

- *“Read `SKILL.md` and plot this CSV for my manuscript—single column PDF, ggplot2.”*
- *“Publication-style plotnine figure, Wong colors, vector output.”*
- *“Journal figure: 85 mm wide, no title, Times, save PDF.”*

---

## How to use

### 🖱️ Cursor

1. 📋 Copy **`SKILL.md`** into your **`.cursor/rules/`** folder.
2. ✏️ Rename it to **`SKILL.mdc`**.
3. 💬 Ask the AI to follow the skill (e.g. *“Plot my data for the manuscript.”*).

### 🤖 Claude Code, Copilot, and other agents

1. 📁 Add **`SKILL.md`** at the **root** of your project (or path your agent reads).
2. 💬 Ask the model to use it (e.g. *“Read `SKILL.md` and plot the attached data.”*).

### 🛸 Google Antigravity

Antigravity loads **Agent Skills** from a folder that contains `SKILL.md` (see Google’s [Authoring Antigravity Skills](https://codelabs.developers.google.com/getting-started-with-antigravity-skills) codelab). This repo’s `SKILL.md` includes YAML **frontmatter** (`name`, `description`) so the agent can match plotting tasks.

**Project-only (recommended)**

1. 📂 Create e.g. **`.agent/skills/scientific-publication-plotter/`** in your repo.
2. 📋 Copy **`SKILL.md`** there (path must end with **`SKILL.md`**).
3. 💬 Ask for a manuscript-style figure in chat; the skill should load when the request matches the description.

**All projects on this machine**

1. 📂 Create **`~/.gemini/antigravity/skills//`** and place **`SKILL.md`** inside.

**Optional — rules UI:** **Agent Manager → ⋮ → Additional options → Customizations** for **`GEMINI.md`** / **`AGENTS.md`** ([Antigravity rules](https://antigravity.codes/blog/user-rules)). Pasting the body of `SKILL.md` there is possible; **`.agent/skills/…`** keeps the skill **on-demand**.

---

## License

MIT — see [`LICENSE`](LICENSE).