CommunityImagengithub.com

aipoch/figure-style

Reglas de corrección y legibilidad de grado de publicación para figuras científicas finales, no para gráficos exploratorios. Útil para figuras que se incluirán en un informe, artículo, exportación o artefacto guardado. Cubre fidelidad de datos, economía de etiquetas, hilo de color, elección de gráfico, diseño y verificación de renderizado sin imponer un estilo visual. Para composiciones de múltiples paneles, use `figure-composer`; para ordenar el artículo completo, use `paper-narrative`.

¿Qué es figure-style?

Este skill de agente de IA, llamado 'figure-style', se enfoca en garantizar que las figuras científicas producidas como entregables finales (para informes, artículos o exportaciones) cumplan con estándares de corrección, legibilidad y consistencia interna, sin imponer un estilo visual particular. Está diseñado para usarse con Claude Code, Cursor, Codex y otras plataformas que soporten la ejecución de skills a través de un kernel de cuaderno. El skill se carga automáticamente cuando se detecta la función `apply_figure_style()` en el código de un bloque de notebook, y proporciona una serie de reglas detalladas (desde la fidelidad de datos hasta la tipografía y el color) que el agente debe verificar antes de renderizar la figura final. No es para gráficos exploratorios intermedios, y funciona tanto de forma independiente como en conjunto con otros skills como 'figure-composer' (para paneles múltiples) y 'paper-narrative' (para el orden del artículo completo). El agente debe generar figuras que sean autoconsistentes, con etiquetas económicas y títulos que comuniquen el hallazgo, utilizando paletas de color seguras para daltonismo y evitando la redundancia.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aipoch/open-science/tree/HEAD/resources/skills/figure-style

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Reglas para Figuras de Grado de Publicación

Una lista de verificación para figuras científicas correctas, legibles e internamente consistentes. Este skill no impone un estilo visual (marco, fuente y paleta son parámetros). Antes de graficar, siga la llamada al Notebook a continuación e invoque apply_figure_style().

Llamada al Notebook de Ciencia Abierta

Cada solicitud notebook_execute cuyo code use una función nombrada en este skill incluye este ID de skill:

{ "kernelSkillIds": ["figure-style"], "code": "apply_figure_style()\n..." }

kernelSkillIds contiene el ID del skill; las llamadas a funciones pertenecen a code. Esta solicitud está completa tal como está escrita: llame a las funciones nombradas directamente y no agregue un paso de importación o descubrimiento.

§0 Alcance

Desencadenante de carga (misma regla que la sección "Gráficos de grado de publicación" del prompt del sistema): este skill es para figuras de entrega final (aquellas que se envían en un informe, artículo o exportación, o se guardan como un artefacto que el usuario conservará), no para gráficos exploratorios/intermedios (vistas previas, EDA, comprobaciones de cordura), que se dibujan sin él. Una vez cargado, "cada gráfico" a continuación significa cada gráfico que renderice para el entregable.

§1–§3, §8, y §9 son de corrección — se aplican a cada gráfico, en cada contexto, y no tienen contenido estético. §4–§7 son orientación — valores predeterminados que producen un resultado limpio pero que una alternativa deliberada puede anular (las reglas individuales dentro de §4–§7 que establecen un invariante fáctico/de percepción — p. ej., §4.4 centrado en cero semántico, §4.5 CVD, §6.9 anclaje de líder — siguen siendo vinculantes). Por sí solo, este skill es el nivel interno (hacer que un gráfico sea bueno); figure-composer y paper-narrative proporcionan el contexto de múltiples paneles y del artículo completo.


§1 Fidelidad de datos y autoconsistencia

1.1 Filas excluidas. Una fila marcada como excluida o señalada en los datos de origen se omite por completo o se dibuja con un marcador abierto/tramado visualmente distinto y se nombra en la leyenda. Nunca ingresa en una estadística resumida trazada junto con las filas incluidas.

1.2 Solo condiciones comparables. Los brazos medidos bajo condiciones no comparables (diferente N, presupuesto de época, inicialización, protocolo) no se trazan como pares visuales. Sepárelos con una ruptura de faceta o un marcador en la etiqueta, y establezca la diferencia una vez en el pie de figura.

1.3 Autoconsistencia. Cada leyenda, umbral y título dentro de la figura debe ser satisfecho por cada fila trazada. Antes de guardar, recorra cada etiqueta de resultado categórico hasta la regla que la define; si el valor de una fila contradice su etiqueta o el título, la figura está mal, no los datos.

1.4 Los títulos-afirmación deben ser verdaderos. Un título en forma de oración (§5.1) se prueba contra cada categoría en el eje antes de renderizar. Si alguno lo contradice, califique el título ("en 3 de 4 pares") o degradelo a una descripción.

1.5 Indique n y qué se mantuvo fijo. Cada panel que dibuja una marca de resumen indica n y la unidad de replicación, y cada pequeño múltiplo que mantiene fija una variable indica el valor fijo — en el panel o, cuando el presupuesto de §2 es ajustado, en el pie de figura.

1.6 La estructura de referencia es referencia. Un árbol, ordenamiento o topología dibujada como contexto (una barra de escala, una tira de categoría) utiliza una referencia establecida, no una inferida de los datos trazados. Infiera la estructura solo cuando la estructura sea el resultado.

1.7 Un número por afirmación. Una afirmación cuantitativa (tiempo de ejecución, precisión, recuento) tiene exactamente un valor canónico en cada panel, pie de figura y resumen. Defina lo que mide y use ese valor en todas partes.


§2 Economía de etiquetas — piso y techo

La figura muestra el patrón; el pie de figura lleva el contexto. Diseñe para un lector científico general, no para el autor.

2.1 Piso (no removible). Cada marca, serie, glifo o comparador distinto debe ser identificable solo a partir de la figura. El pie de figura explica por qué importa, no qué es. Una etiqueta es no removible si eliminarla deja al lector preguntándose "¿qué es eso?"; es removible solo si la pregunta se convierte en "¿por qué está eso ahí?". Las etiquetas de los comparadores nombran la cosa ("método anterior", "sin entrenamiento conjunto"), nunca una palabra de rol simple ("línea base", "anterior"). Cualquier término que un científico general no pueda entender recibe un glosario de una palabra.

2.2 Techo. Por panel: título + etiquetas de eje + etiquetas de marca + identidad de serie (etiquetada una vez por fila de pequeños múltiplos) + como máximo 2–3 anotaciones de resultado. Cuente las cadenas; >6 más allá de ejes/marcas significa que se está excediendo. El techo cuenta las anotaciones narrativas (llamadas, etiquetas de valor, corchetes) — las etiquetas de identidad son piso, no presupuesto.

2.3 Mover al pie de figura: n=, qué se mantuvo fijo, expansiones de abreviaturas, notas al pie no comparables, justificación de exclusión, advertencias metodológicas.

2.4 Los títulos son conclusiones. Un lector que ve solo el título sabe lo que muestra el panel. "Robusto a la pérdida de genes" funciona; "Menos genes" falla. Prueba: léalo en voz alta sin contexto — si el oyente pregunta "¿menos genes qué?", reescriba. Para una fila de pequeños múltiplos que varían una cosa, omita los títulos por panel para un encabezado de fila.

2.5 Valor sobre la marca solo para el número principal — el que un lector citaría. Todo lo demás se lee del eje.

2.6 En caso de duda, elimine la etiqueta y vuelva a leer. Si el mensaje sobrevive, queda eliminada.


§3 Ejes, escalas, pequeños múltiplos

Cuando un eje existente necesita un marco diferente al ajuste general de la figura, llame a set_frame(ax, style=...).

3.1 Relleno del eje. Los límites del eje están separados de los datos por al menos un radio de marcador en cada lado; los marcadores y el texto nunca tocan un borde. ax.margins(0.04) después de graficar, o extienda el límite más allá de cualquier anotación.

3.2 Rupturas de eje sobre rango desperdiciado. Cuando los datos ocupan <40% de un eje, rompa el eje o comience en el piso de datos con una marca clara no cero. Nunca dibuje una línea de referencia, umbral o anotación dentro de un espacio de eje roto — el espacio no tiene coordenada.

3.3 Los ejes logarítmicos obtienen marcas legibles — 10², 10³, o 1k / 10k / 100k, no exponentes brutos. Nunca dibuje barras rellenas en un eje de valores con escala logarítmica (la longitud de la barra codifica la relación con un piso arbitrario); use puntos + marca de mediana en su lugar.

3.4 Ejes compartidos en pequeños múltiplos. Una fila o columna de pequeños múltiplos muestra las etiquetas de marca una vez (panel izquierdo/inferior); los paneles interiores mantienen las marcas pero eliminan las etiquetas. Cuando los paneles comparten un eje y y difieren solo en la variable x, renderícelos como subtramas contiguas (wspace≤0.06) con un título de encabezado de fila.

3.5 Llene la caja. El envolvente de datos de un panel ocupa ≥75% de su rectángulo asignado. Si la relación de aspecto natural de un panel deja bandas muertas, rediseñe la cuadrícula (abarcadura de filas, paneles complementarios apilados) — no rellene el panel.

3.6 Dirección de bondad. Cuando no es obvio a partir de la etiqueta del eje si más alto o más bajo es mejor, coloque una pequeña señal vertical ("más alto = mejor") en el margen — una vez por fila de paneles, nunca por panel, y nunca solo en el pie de figura. Un glifo direccional incrustado en texto rotado gira con él; coloque la señal vertical. goodness_arrow(ax, ...) coloca esta señal.

3.7 Ancho físico. Una figura de una fila a 300 ppp se ajusta al ancho de doble columna del medio. Agregar un esquemático o etiquetas no hace que los paneles de datos sean más estrechos de lo que eran antes.


§4 Color

4.1 Hilo. Una vez que un color está vinculado a una entidad (un método, una característica, una condición), reutilice ese color exacto para cada marca que represente esa entidad en toda la figura — línea, relleno, marcador, texto, fila de mapa de calor. El color es la referencia cruzada; un lector nunca debería tener que consultar una leyenda dos veces.

4.2 Limitar matices. Use tan pocos matices distintos como los datos requieran. Cuando la figura compara una serie focal con otras, haga que la serie focal sea visualmente dominante (saturada, peso más pesado) y renderice los comparadores con menor peso visual (desaturados, más claros o más delgados). El matiz focal no debe coincidir con ningún matiz en una paleta categórica utilizada en la misma figura. La serie focal debe permanecer identificable incluso cuando su marca tiene ancho cero o coincide con otras — a través de contorno, marcador o una banda teñida clara. Use focal_palette(...) para vincular los colores focales y de comparación a las etiquetas ordenadas.

4.3 Categorías jerárquicas. Cuando las categorías están anidadas (grupos dentro de grupos), el nivel externo elige la familia de matices y el nivel interno muestrea dentro de ella.

4.4 Continuo y divergente. Use un mapa secuencial perceptualmente uniforme para valores continuos genéricos; un gradiente de un solo matiz para rango ordinal o tamaño; un mapa divergente para cantidades con signo — siempre centrado en el cero semánticamente significativo (0, 1.0 o mediana), nunca en el punto medio de los datos.

4.5 Seguridad CVD (daltonismo). Nunca confíe en un contraste rojo/verde para una distinción binaria u opuesta. Cualquier par binario debe permanecer distinguible en simulación de deuteranopía. Reserve un color de alarma para marcas de error/anomalía/perturbación y no lo reutilice como color de serie de datos.

4.6 Dos paletas, dos leyendas. Cuando una figura usa dos sistemas de color categóricos, cada leyenda se sienta adyacente al primer panel donde se aplica su paleta.


§5 Tipografía

5.1 Títulos en oración. Un título de panel establece la comparación en lenguaje sencillo, peso regular, alineado a la izquierda. Los nombres de las métricas van en el eje, no en el título.

5.2 Escalera de tamaño asignada por rol. Una figura usa como máximo tres tamaños de fuente, asignados por rol, no por espacio: títulos/etiquetas de eje/identidad de serie en el tamaño base; texto de leyenda/anotación un paso más pequeño; etiquetas de marca un paso más pequeño aún. Las letras de panel son la única excepción (negrita, más grande). Si una etiqueta no cabe en el tamaño de su rol, arregle el diseño o acorte el texto — no use un tamaño intermedio. apply_figure_style(sizes=(8,7,6)) establece la escalera. Cuando una línea de metadatos secundaria es necesaria, construya el texto de dos líneas con two_tier_label(name, meta).

5.3 Nomenclatura. Los nombres de especies, genes y variables que la convención científica pone en cursiva se ponen en cursiva. Los códigos abreviados heredan la regla; expanda una vez en la primera aparición.

5.4 Sufijos de magnitud. Los recuentos grandes usan k / M / B (4.2B, 120 kb), no numerales completos agrupados por comas.

5.5 Anotaciones numéricas. Los números sobre la marca usan como máximo 2 cifras significativas — a menos que el redondeo a 2 cifras significativas haga que dos filas distintas impriman el mismo valor, en cuyo caso muestre el dígito que las separa. El texto sobre una marca rellena alcanza un contraste ≥4.5:1; si no es así, coloque el texto fuera de la marca.

5.6 Sin códigos internos. Las etiquetas de los ejes usan nombres en lenguaje sencillo; las abreviaturas del código base aparecen solo entre paréntesis después del nombre legible o en el pie de figura. Las series de comparación se etiquetan con lo que son, no con una palabra de rol.

5.7 Letras de panel. Negrita, esquina superior izquierda, fuera del cuadro de ejes. Las mayúsculas/minúsculas siguen la convención del medio de destino; panel_letter(ax, 'a', case=...) maneja cualquiera.


§6 Orientación sobre tipos de gráfico (según la forma de los datos)

6.1 Categórico × numérico. Muestre la distribución, no solo el resumen. La elección del gráfico sigue a n: tira con dispersión y marca de mediana para n pequeño; diagrama de caja o violín para n grande; barra + puntos brutos superpuestos o barra + intervalo cuando la media es el mensaje. Use strip_with_median(...) para la forma de tira con dispersión y bar_with_points(...) para barras con puntos brutos o un intervalo. El intervalo errorbar='ci95' es el IC del 95% de la distribución t de la media (semiamplitud t_{0.975,n−1}·s/√n), por lo que es válido para n pequeño. Las barras de error y las superposiciones de puntos brutos son alternativas — mostrar ambas suele ser redundante. Una categoría ausente de un grupo se marca (n.d., —, o un fantasma tramado) en su lugar; una ranura vacía se lee como cero. Una barra con valor cero obtiene un muñón o punto visible en la línea base.

6.2 Categorías de una sola observación. Un punto relleno con un tallo neutro delgado hasta el cero semántico (piruleta). Las etiquetas de valor se colocan al lado del punto.

Los ayudantes de trazado agrupados requieren observaciones reales unidimensionales finitas no vacías en cada grupo proporcionado. Rechazan grupos vacíos y NaN/Inf antes de dibujar: resuelva las exclusiones explícitamente, informe la n retenida y agregue un marcador de categoría faltante por separado cuando corresponda. No eliminan observaciones faltantes en silencio. Las matrices enmascaradas con observaciones excluidas se rechazan antes de la conversión; las matrices sin entradas enmascaradas siguen siendo válidas. Los intervalos SD/IC solicitados requieren al menos dos observaciones por grupo; para una sola observación, use puntos sin intervalo. Las etiquetas y los grupos de datos deben estar alineados. Para strip_with_median, las secuencias de color no vacías ciclan; None o una secuencia vacía usa gris predeterminado. Una secuencia de color de barra vacía usa el color de barra predeterminado de Matplotlib; una secuencia base focal_palette vacía usa el ciclo de color predeterminado.

6.3 Series continuas. Media por x como una línea con marcadores; ejecuciones individuales como líneas delgadas translúcidas o puntos detrás. Etiquete cada serie con texto directo en el extremo derecho de su línea en lugar de un cuadro de leyenda; end_of_line_labels(...) coloca esas etiquetas. Los glifos de resumen (media/mediana por contenedor) usan una forma que no puede confundirse con una observación bruta, idéntica en todas las series, dibujada debajo de los puntos brutos en orden z.

end_of_line_labels valida los recuentos de serie/etiqueta y las longitudes x/y coincidentes no vacías antes de agregar etiquetas. Los puntos finales deben ser finitos; los espacios interiores pueden permanecer. Accede al final de cada secuencia indexada sin copiar la serie completa. Las secuencias de color no vacías ciclan; None o una secuencia vacía usa el color de texto predeterminado actual. Las letras de panel deben ser únicas para panel_crops.

6.4 Distribuciones en soporte compartido. Cuando dos distribuciones se superponen en gran medida, apílelas como paneles pequeños con un eje x compartido o use una cresta. Superponga solo cuando la separación sea visualmente clara.

6.5 Matrices. Cuando un mapa de calor es lo suficientemente pequeño como para leer (< ~200 celdas), imprima el valor en cada celda. Indique el umbral una vez en la etiqueta de la barra de color.

6.6 Incrustaciones. Los diagramas de dispersión de reducción de dimensionalidad (UMAP, t-SNE, PCA) eliminan las marcas y las etiquetas de marca; un par de flechas pequeñas en la esquina nombran los ejes. Los clústeres se etiquetan con líneas guía delgadas hacia el texto en el espacio en blanco circundante.

6.7 Predicción apareada vs. observación. Apile las dos como pistas adyacentes con x y color idénticos; deje que la alineación lleve la comparación. Objetivo

…

[truncado para traducción]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados