figures — figuras gnuplot de qualidade para publicação
Transforme uma solicitação em linguagem natural, mais um ou mais arquivos de dados, em uma figura PDF pronta para publicação no estilo do grupo. Lida com os tipos comuns de figuras de magnetismo, esquemas de cores selecionáveis e estilo de revista vs. apresentação.
Pré-requisitos
gnuplot(v6+) — o motor de plotagem. Renderiza PDF diretamente viapdfcairo.pdftoppm(poppler) — converte o PDF de saída para PNG para que você possa olhar a figura e iterar. Sempre verifique visualmente o resultado.
Como estilos/cores são carregados — GNUPLOT_LIB (importante)
Os scripts carregam arquivos de estilo compartilhados pelo nome simples, ex.: load "nature.journal" e load "bluegold.colour". O gnuplot encontra esses arquivos através do caminho de busca GNUPLOT_LIB. Sempre execute o gnuplot com GNUPLOT_LIB apontando para os diretórios styles/ e colours/ desta skill:
SKILL_DIR abaixo é o caminho absoluto para o próprio diretório desta skill (aquele que contém este SKILL.md, ex.: ~/.claude/skills/figures se instalado pessoalmente, ou o caminho do repositório durante o desenvolvimento). Substitua pelo caminho real:
SKILL_DIR="/caminho/absoluto/para/figures" # dir que contém este SKILL.md
export GNUPLOT_LIB="$SKILL_DIR/styles:$SKILL_DIR/colours"
gnuplot myfigure.gpl # execute a partir do diretório que contém os dados
Manter os caminhos fora dos scripts significa que um script é portátil e uma alteração em um arquivo de estilo se propaga para todas as figuras que o carregam.
Fluxo de trabalho
- Identifique o tipo de figura a partir da solicitação (veja
references/figure-types.md): histerese M(H), magnetização M(T), série temporal M(t) ou outro. Cada tipo tem um script de exemplo canônico para copiar. - Inspecione os dados. Olhe o arquivo: remova linhas de comentário (
#), conte colunas, verifique intervalos. Mapeie quais colunas são x e y. Arquivos de saída do VAMPIRE são colunas separadas por espaço simples com cabeçalhos de comentário#; se um arquivo de entrada do VAMPIRE estiver junto com os dados, suas palavras-chaveoutput:definem a ordem das colunas — leia-o para rotular as colunas corretamente. Caso contrário, trate os dados como colunas genéricas e confirme o mapeamento com o usuário se ambíguo. - Copie o exemplo correspondente de
examples/<type>/como ponto de partida e adapte: nomes dos arquivos de dados, colunasusing, rótulos dos eixos + unidades, limites dos eixos (5 % além do primeiro e do último tick principal em ambas as extremidades, viapadlo/padhioulpadlo/lpadhido arquivo de revista, vejareferences/conventions.md), rótulos da legenda e qualquer ajuste. - Escolha o estilo e o esquema de cores (padrões abaixo; respeite qualquer solicitação
explícita). Defina-os através das duas linhas
loadno topo do script. - Renderize com
GNUPLOT_LIBconfigurada, produzindo um PDF. - Olhe a saída: converta com
pdftoppm -png -r 150 out.pdf previewe leia o PNG. Verifique rótulos cortados, sobreposição de legendas, densidade de ticks, contraste de cores. Itere no script até que esteja limpo. - Entregue o script
.gple o PDF. A figura deve ser reproduzível apenas com o script + dados.
Padrões
- Estilo:
nature.journal(86 mm de coluna única, Helvetica, pronto para impressão). - Esquema de cores:
bluegold.colour(o padrão do grupo). - Saída: PDF via
pdfcairo, direta — nunca o pipeline EPS→PDF.
Estilos (styles/)
| Arquivo | Uso |
|---|---|
nature.journal | Padrão. Largura de coluna única (86 mm) para revista de duas colunas; fundo claro, Helvetica. |
inverted.journal | Fundo cinza escuro, primeiro plano claro — slides/web escuros. |
presentation.journal | Avenir Next, tela grande — slides de palestra projetados. |
presentation-dark.journal | Estilo de apresentação em fundo escuro. |
Esquemas de cores (colours/)
Padrão: bluegold, usado a menos que outro esquema seja solicitado.
Sequenciais/perceptuais (famílias matplotlib e MATLAB): viridis, magma,
inferno, plasma, cividis (seguro para daltonismo), parula. Divergentes:
bluegold, skyrmion (azul marinho → branco → vermelho, para quantidades sinalizadas
como s_z), RdYlBu. Tom único: purple. Arco-íris: turbo (melhorado),
jet (desencorajado — não uniforme perceptual). Cada um define estilos de linha de série discretos
ls 1–ls 8 mais uma paleta contínua pm3d. Veja
references/colour-schemes.md para quando usar cada um e emparelhamento claro/escuro.
Tipos de figura e exemplos
Scripts canônicos, anotados e executáveis estão em examples/:
examples/mvsH/MH.gpl— loop de histerese M(H), guias de eixo zero.examples/mvsT/mvsT.gpl— magnetização M(T) com ajuste de Curie–Bloch.examples/mvstime/mvstime.gpl— série temporal de desmagnetização com múltiplas curvas (dados sintéticos, regenere commake_data.py).examples/anisotropy-surface/3D.gpl— superfície de energia 3D: cor raster + eixos vetoriais compostos dentro do gnuplot (PDFs pequenos e rápidos; sem ferramentas externas).
Referências
references/conventions.md— as regras de figuras do grupo (rótulos, unidades, ticks, legendas, ajustes, sintaxe de texto aprimorada).references/figure-types.md— receita por tipo e mapeamento de colunas.references/colour-schemes.md— catálogo de esquemas e guia de seleção.