Claude Code skill for publication-quality scientific visualisations: chart, architecture, flowchart, comparison, pipeline. Bundles matplotlib publication defaults (300 DPI, serif font, colorblind palette), NADEZHDA project palette, Mermaid conventions, and ready-to-use templates. Contents: - SKILL.md — behaviour spec (5 types, generation pipeline) - README.md — human-facing entry: when, install, examples - reference/chart_patterns.md — Pareto/bar/radar/heatmap snippets - templates/architecture_nadezhda.md — Mermaid templates for Teacher-Student / LUPI / fusion Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
182 lines
7.4 KiB
Markdown
182 lines
7.4 KiB
Markdown
---
|
||
name: scientific-viz
|
||
description: "Generate publication-quality scientific visualizations: charts (matplotlib/seaborn), neural network architecture diagrams, block-scheme flowcharts (mermaid), training pipeline diagrams, and benchmark comparison tables. Use when the user needs any visual figure for papers, reports, or presentations."
|
||
argument-hint: "[type: chart|architecture|flowchart|comparison|pipeline] [description]"
|
||
user-invocable: true
|
||
allowed-tools: Read Write Edit Bash Glob Grep
|
||
---
|
||
|
||
# Научная визуализация для CVGL
|
||
|
||
Генерация визуализаций для научных публикаций, отчётов и презентаций проекта NADEZHDA.
|
||
|
||
## Входные данные
|
||
|
||
- `$ARGUMENTS` — тип визуализации + описание
|
||
- Примеры:
|
||
- `/scientific-viz chart "R@1 comparison across methods on University-1652"`
|
||
- `/scientific-viz architecture "Teacher-Student LUPI pipeline"`
|
||
- `/scientific-viz flowchart "Training progressive staging 3 phases"`
|
||
- `/scientific-viz comparison "Backbone candidates: params vs R@1"`
|
||
|
||
## Типы визуализаций
|
||
|
||
### 1. `chart` — Графики и диаграммы (matplotlib + seaborn)
|
||
|
||
Для: сравнение метрик, аблации, распределения, training curves.
|
||
|
||
**Выход:** Python-скрипт `.py` + сохранённый `.png`/`.pdf`
|
||
|
||
Обязательные требования:
|
||
- Разрешение ≥ 300 DPI
|
||
- Шрифт: Times New Roman или DejaVu Serif, ≥ 10pt
|
||
- Colorblind-safe палитра (Okabe-Ito или tab10)
|
||
- Подписи осей на **английском** (для публикаций)
|
||
- Легенда без перекрытия данных
|
||
- Grid: light gray, alpha=0.3
|
||
- Tight layout, без обрезки подписей
|
||
- Формат сохранения: PNG (300 DPI) + PDF (vector)
|
||
|
||
Стиль matplotlib (использовать в начале каждого скрипта):
|
||
```python
|
||
import matplotlib.pyplot as plt
|
||
import matplotlib
|
||
matplotlib.rcParams.update({
|
||
'font.family': 'serif',
|
||
'font.size': 11,
|
||
'axes.labelsize': 12,
|
||
'axes.titlesize': 13,
|
||
'legend.fontsize': 10,
|
||
'xtick.labelsize': 10,
|
||
'ytick.labelsize': 10,
|
||
'figure.dpi': 300,
|
||
'savefig.dpi': 300,
|
||
'savefig.bbox': 'tight',
|
||
'axes.grid': True,
|
||
'grid.alpha': 0.3,
|
||
})
|
||
```
|
||
|
||
Шаблоны: см. [reference/chart_patterns.md](reference/chart_patterns.md)
|
||
|
||
### 2. `architecture` — Архитектуры нейросетей
|
||
|
||
Для: Teacher/Student диаграммы, backbone stages, fusion modules, head designs.
|
||
|
||
**Два варианта выхода:**
|
||
|
||
**A) Python (matplotlib + patches/arrows)** — для сложных кастомных диаграмм:
|
||
- Прямоугольники = слои/модули
|
||
- Стрелки = потоки данных
|
||
- Цвета = разные модальности/компоненты
|
||
- Аннотации: размерности тензоров, число параметров
|
||
- Используй `matplotlib.patches.FancyBboxPatch` для красивых блоков
|
||
|
||
**B) Mermaid** — для встраивания в Obsidian:
|
||
```mermaid
|
||
graph TD
|
||
A[Satellite RGB] --> B[DINOv2-L Encoder]
|
||
C[Drone RGB] --> B
|
||
D[Depth Map] --> E[CNN Encoder]
|
||
...
|
||
```
|
||
|
||
Шаблоны: см. [templates/architecture_nadezhda.md](templates/architecture_nadezhda.md)
|
||
|
||
### 3. `flowchart` — Блок-схемы процессов
|
||
|
||
Для: training pipeline, inference pipeline, experimental workflow, data processing.
|
||
|
||
**Выход:** Mermaid-диаграмма (встраиваемая в Obsidian) + опционально Python-версия
|
||
|
||
Mermaid-конвенции:
|
||
- `graph TD` для вертикальных flow
|
||
- `graph LR` для горизонтальных pipeline
|
||
- Цвета через `style` или `classDef`
|
||
- Подписи на английском (для публикаций) или русском (для отчётов)
|
||
|
||
### 4. `comparison` — Сравнительные визуализации
|
||
|
||
Для: scatter plot params-vs-accuracy, grouped bar chart методов, radar chart по критериям.
|
||
|
||
Паттерны:
|
||
- **Pareto front:** params (x) vs R@1 (y), маркеры = разные методы, размер = FLOPs
|
||
- **Grouped bar:** методы × датасеты, hatching для edge/cloud
|
||
- **Radar/spider:** критерии (accuracy, speed, size, generalization, robustness)
|
||
- **Heatmap:** метод × датасет → R@1 значения
|
||
|
||
### 5. `pipeline` — Диаграммы пайплайна
|
||
|
||
Для: LUPI distillation flow, data augmentation pipeline, edge deployment chain.
|
||
|
||
Специальная нотация:
|
||
- Thick arrows = main data flow
|
||
- Dashed arrows = gradient flow / loss signals
|
||
- Color: blue = Teacher, orange = Student, green = shared
|
||
- Labels on arrows: loss names (L_task, L_LUPI, L_feat, L_RKD)
|
||
|
||
## Процесс генерации
|
||
|
||
### Шаг 1: Определи тип и параметры
|
||
|
||
Из `$ARGUMENTS` извлеки:
|
||
- Тип: chart / architecture / flowchart / comparison / pipeline
|
||
- Что визуализировать
|
||
- Целевой формат: Obsidian (mermaid) / публикация (matplotlib) / оба
|
||
- Язык подписей: EN (default для публикаций) / RU (для отчётов)
|
||
|
||
### Шаг 2: Найди данные
|
||
|
||
Если визуализация требует числовых данных:
|
||
- Поищи в `1_lit_research/СИНТЕЗ_всех_статей_для_LUPI_CVGL.md`
|
||
- Или в конкретных конспектах `1_lit_research/6_cvgl/P{N}_*.md`
|
||
- Или спроси пользователя
|
||
|
||
### Шаг 3: Сгенерируй код
|
||
|
||
- Python-скрипт: сохранить в `3_work/` или `attachments/figures/`
|
||
- Mermaid: вставить inline в .md файл
|
||
- Всегда указывай: `plt.savefig("filename.png", dpi=300, bbox_inches='tight')`
|
||
|
||
### Шаг 4: Добавь аннотации
|
||
|
||
Каждая визуализация должна иметь:
|
||
- Заголовок (title)
|
||
- Подписи осей (xlabel, ylabel)
|
||
- Легенду (если >1 series)
|
||
- Источник данных (caption или комментарий в коде)
|
||
|
||
## Специфика проекта NADEZHDA
|
||
|
||
### Цветовая схема компонентов
|
||
|
||
| Компонент | Цвет | Hex |
|
||
|:----------|:-----|:----|
|
||
| Teacher | Deep blue | `#1f77b4` |
|
||
| Student | Orange | `#ff7f0e` |
|
||
| Satellite modality | Green | `#2ca02c` |
|
||
| Drone modality | Red | `#d62728` |
|
||
| Street-view | Purple | `#9467bd` |
|
||
| Depth | Brown | `#8c564b` |
|
||
| Text | Pink | `#e377c2` |
|
||
| Loss / gradient | Gray | `#7f7f7f` |
|
||
| Edge / Jetson | Teal | `#17becf` |
|
||
|
||
### Стандартные размерности тензоров
|
||
|
||
```
|
||
Input: [B, 3, 256, 256]
|
||
Stage 1: [B, 32, 96, 96]
|
||
Stage 2: [B, 64, 48, 48]
|
||
Stage 3: [B, 128, 24, 24]
|
||
Stage 4: [B, 256, 12, 12]
|
||
Descriptor: [B, 512] L2-normalized
|
||
```
|
||
|
||
## Ограничения
|
||
|
||
- НЕ используй внешние API (OpenRouter, Gemini) — только локальные библиотеки
|
||
- НЕ генерируй растровые диаграммы архитектур через PIL/ImageDraw — используй matplotlib patches или mermaid
|
||
- Всегда сохраняй и .py скрипт, и результат (.png/.pdf)
|
||
- Для Obsidian: mermaid блоки встраиваются напрямую в .md
|