Simplot dibuja tablas numéricas mediante Gnuplot. Es el graficador del proyecto Simusol, pero también puede usarse con datos de Calcula, Siru, SCEPTRE, Tabular, Radia, instrumentos o planillas. Simplot no simula el sistema: recibe una o más tablas de valores y las convierte en gráficos. Opcionalmente, PARAPLOT describe qué dibujar.
Desde Descargas se obtiene el instalador de SummaPack. En una terminal:
curl -fsSLO https://www.simusol.org/downloads/installsumma.sh
sh installsumma.sh simplot
El instalador selecciona los paquetes de la máquina e instala las dependencias. Los paquetes binarios publicados pueden ir por detrás de las fuentes actuales; para trabajar con las funciones y correcciones más recientes se recomienda instalar desde fuentes.
Las fuentes actuales se obtienen del repositorio SVN de Simusol; el archivo tar.gz publicado con un paquete binario puede corresponder a una revisión anterior. En Debian o Ubuntu, instalar primero las herramientas externas:
sudo apt install subversion make perl gnuplot libpath-class-perl libcapture-tiny-perl
svn checkout https://cssan.simusol.org/users/dsa/repos/siru/simplot simplot
cd simplot
Simplot también necesita dos programas del proyecto: d2datdinc de Slex 1.0-25 o posterior e interpola de Tabular 2.0-16 o posterior. Se pueden instalar sus paquetes compatibles; si los binarios disponibles son antiguos, obtener sus fuentes actuales en el mismo repositorio (.../siru/slex y .../siru/tabular2), construirlas e instalarlas siguiendo los README respectivos. Tabular2 necesita además sus bibliotecas de desarrollo, entre ellas libmem-util-dev, libslex-dev, libunidades-dev, libexprtk-dev y libreadline-dev; su README enumera las herramientas de construcción. No continuar con versiones viejas de d2datdinc o interpola aunque estén instaladas.
Con esas dependencias disponibles:
make
make check
make install PREFIX="$HOME/.local"
"$HOME/.local/bin/simplot" --help
Para todos los usuarios se puede usar sudo make install en vez del PREFIX privado; el destino predeterminado es /usr/local. Simplot es Perl puro: make comprueba dependencias y sintaxis, make check ejecuta las pruebas y make install copia el programa y sus módulos. No hace falta configure ni ejecutar el antiguo Makefile.PL. El manual completo de instalación y construcción de paquetes está en doc/manual/simplot.pdf dentro de las fuentes.
Simplot hace dos cosas, ambas activadas por defecto:
.ds como secciones GNUPLOT. Genera una por cada sección PARAPLOT; si no hay ninguna, prepara un gráfico automático.Cada sección GNUPLOT toma el nombre de su PARAPLOT correspondiente; si este no tiene nombre, Simplot le asigna un número:
| Entrada | Identificador | Sección generada |
|---|---|---|
PARAPLOT TEMPERATURAS |
TEMPERATURAS |
GNUPLOT TEMPERATURAS |
Segundo PARAPLOT del documento, escrito solo PARAPLOT |
2, automático |
GNUPLOT 2 |
PARAPLOT ESTADOS |
ESTADOS |
GNUPLOT ESTADOS |
| Ningún PARAPLOT | Pedido automático único | GNUPLOT 1 |
Puede haber varios PARAPLOT. El nombre explícito se conserva exactamente, incluidas mayúsculas y minúsculas. Sin nombre, se usa la posición entre todos los PARAPLOT, contados desde 1, también los que tienen nombre. Cada GNUPLOT hereda ese identificador. Los identificadores repetidos —incluso por colisión entre un número explícito y uno automático— son errores. Los nombres de gráficos interiores son locales al grupo; no son el nombre de la sección.
| Opción | Generación | Ejecución |
|---|---|---|
| Ninguna | Un GNUPLOT por PARAPLOT; uno automático si no hay PARAPLOT | Ejecuta los GNUPLOT producidos. |
--no-generar |
Conserva los GNUPLOT existentes | Los ejecuta; si no hay ninguno, informa que no puede dibujar. |
--no-ejecutar |
Genera los GNUPLOT | No invoca Gnuplot. |
| Ambas | No genera | No ejecuta; conserva el documento. |
Al regenerar se reemplazan los GNUPLOT anteriores, sin acumular copias obsoletas. Estas secciones van al final del .ds; cada una contiene el programa y sus datos y termina con una línea de terminal para ejecutar ese grupo mediante Gnuplot. Simplot invoca Gnuplot directamente, sin ejecutar esa receta mediante el shell. Los programas GNUPLOT recibidos deben ser de confianza. -noX solo suprime la ventana, no ninguna de las dos etapas; -save guarda el documento y los SVG efectivamente producidos. Sin -save, el documento sale por stdout.
PARAPLOT describe cómo dibujar: fuentes, coordenadas X:Y, trazos o puntos, ejes y paneles. Es opcional: sin PARAPLOT, Simplot usa las columnas y los metadatos disponibles para preparar gráficos automáticos. No necesita tiempo ni una simulación previa.
La preparación del problema y de los datos se explica en Siru y en Gramática .ds. Aquí se describe cómo dibujar las tablas recibidas.
| Entrada | Qué aporta |
|---|---|
Tabla .simul sola |
Dibujo automático: la primera columna es X y las siguientes son Y; X no tiene que ser tiempo. Si la tabla tiene una sola fila, se representa un estado o punto, por ejemplo A contra B, sin eje temporal. |
PARAPLOT en .ds o .d |
Fuentes, series, ejes, títulos y paneles explícitos. Un .ds puede contener solo esa sección: no necesita describir un circuito. |
El documento es un .ds; PARAPLOT es una sección opcional, no un tipo de archivo aparte. El contrato común de entrada contempla estas formas equivalentes:
| Organización | Contenido |
|---|---|
Un solo .ds, con PARAPLOT |
Una o más secciones TABLE y la sección PARAPLOT en el mismo documento. |
Un solo .ds, sin PARAPLOT |
Las tablas incorporadas bastan; Simplot prepara gráficos automáticos. |
| Archivos separados | Un .ds y uno o más archivos de tablas. El documento identifica las fuentes; la tabla homónima puede quedar implícita. |
| Todo por entrada estándar | Las mismas secciones del .ds, incluidas las tablas, viajan por un pipe. TABLE delimita cada tabla; puede aparecer antes o después de PARAPLOT. |
Si hay una sola tabla incorporada, basta TABLE, sin nombre. Con varias, cada TABLE NOMBRE identifica una fuente lógica; no es un nombre de archivo. No se agrega DOCUMENT ni un END final.
Cuando Siru produce los datos de NOMBRE.ds, identifica su tabla como TABLE NOMBRE FORMATO=SIMUL: conserva el nombre del caso, sin la ruta ni la extensión. El pipe también transporta ese nombre, aunque el archivo de resultados tenga otro nombre o un sufijo. SIMULADO se conserva como referencia implícita de los pedidos antiguos, no como nombre obligatorio de la tabla producida.
Implementado en las fuentes: Slex incorpora TABLE al DAT; Simplot entrega sus datos a Tabular2 y genera y ejecuta los grupos GNUPLOT. Funciona por archivos o por entrada estándar textual, con tablas antes o después de PARAPLOT. Siru usa ese mismo pipe textual. Las pruebas están en tests/entradas-ds.t y tests/documento.t; hay ejemplos en corpus/entradas-ds/. Hace falta instalar las versiones actualizadas de Slex, Siru y Simplot para usarlo fuera del árbol.
simplot --no-ejecutar caso.ds > caso-grafico.ds
simplot --no-generar caso-grafico.ds
cat caso.ds | simplot -noX -save --nombre caso.ds
simplot -noX caso.ds medidas.csv otra.simul
Cada GNUPLOT termina con una receta de una línea para Bash (gnuplot -persist <(awk ...)), que extrae solo su grupo del documento indicado. --salida archivo.ds permite elegir ese nombre; al redirigir stdout, usar el mismo nombre que indica la receta. Las órdenes antiguas de PARAPLOT se traducen al mismo modelo que las nuevas: hay un solo motor gráfico. -graf=4 y -sinventana siguen disponibles como opciones de compatibilidad, pero no seleccionan otro motor.
Usaremos esta tabla de temperaturas para explicar ambos casos. Guardarla como comparacion.simul:
# para Siru: sceptrevars variables magnitudes unidades
# T A B
# Tiempo,Interior,Exterior
# tiempo,temperatura,temperatura
# s,tempC,tempC
0 20 18
60 22 19
120 24 21
180 23 20
Basta entregar la tabla a Simplot. No hay instrucciones que escribir: usa la primera columna, T, como abscisa y las restantes, A y B, como ordenadas, con la información disponible en sus encabezados.
Guardar este pedido como comparacion.ds, junto a comparacion.simul:
PARAPLOT
lineas TEMPERATURAS = T:A,B
titulo TEMPERATURAS = Interior y exterior
ejes TEMPERATURAS = Tiempo(s),Temperatura(tempC)
puntos ESTADOS = A:B
titulo ESTADOS = Exterior contra interior
ejes ESTADOS = Interior(tempC),Exterior(tempC)
mostrarjuntos RESUMEN = TEMPERATURAS,ESTADOS
simplot -graf=4 -sinventana comparacion.ds
Aquí se piden dos dibujos: A y B contra T, y B contra A como puntos. mostrarjuntos los reúne en un panel. La tabla se encuentra por el nombre compartido comparacion, sin una orden archivo.

Siru llama a Simplot al terminar, salvo con -nosimplot, y le transmite la descripción y la tabla por un pipe textual; también incorpora las tablas externas declaradas. El receptor JSON anterior se conserva por compatibilidad, pero Siru ya no lo utiliza. Simplot también funciona independientemente: simplot tabla.simul. El manual completo, incluidos los archivos reproducibles de este ejemplo, está en doc/manual/ del árbol de fuentes.
Una orden tiene la forma palabra GRAFICO = datos; # introduce un comentario. PARAPLOT acaba al empezar otra sección o al llegar al fin del .ds o .d: no lleva END. Los nombres de columnas identifican datos, mientras que una ruta de archivo respeta las mayúsculas y minúsculas del sistema. Una serie de una sola fila debe dibujarse como punto; no exige eje temporal.
| Orden | Ejemplo | Efecto |
|---|---|---|
archivo |
archivo MEDICIONES = mediciones.simul |
Declara una fuente externa cuando la tabla no está incorporada. |
lineas |
lineas G = T:A,B |
Une las muestras de A y B contra T. |
puntos |
puntos G = A:B |
Dibuja B contra A, incluso con una sola fila. |
titulo |
titulo G = Interior y exterior |
Título del gráfico. |
ejes |
ejes G = Tiempo(s),Temperatura(tempC) |
Rótulos y unidades de presentación. |
rangox, rangoy |
rangox G = 0,120 |
Fijan los límites del eje indicado. |
mostrarjuntos |
mostrarjuntos PANEL = G,H |
Reúne gráficos distintos en un panel; no superpone sus series. |
Si comparacion.ds utiliza solo comparacion.simul, la tabla propia se infiere por el nombre: no hace falta archivo SIMULADO = comparacion.simul ni repetir el nombre de la fuente en cada serie. También puede haber un .ds con solo PARAPLOT; si no tiene tabla homónima o incorporada, debe declarar o recibir sus fuentes.
Para dos-fuentes.ds, cuya tabla propia es dos-fuentes.simul, únicamente se declara la tabla externa. Con dos fuentes cada serie indica a cuál pertenece; SIMULADO sigue siendo el nombre implícito de la tabla propia:
PARAPLOT
archivo MEDICIONES = mediciones.simul
lineas COMPARACION_DATOS = SIMULADO,T:TEMP
puntos COMPARACION_DATOS = MEDICIONES,T:TEMP
titulo COMPARACION_DATOS = Calculo y mediciones
ejes COMPARACION_DATOS = Tiempo(s),Temperatura(tempC)
Las dos series del ejemplo comparten un gráfico. Una tabla externa puede igualmente llegar como TABLE MEDICIONES dentro del documento o por el pipe; archivo sirve cuando se la lee de otro archivo.
Los límites de incertidumbre vienen como columnas de los datos, no son calculados por Simplot. Pueden ser asimétricos y deben encerrar el valor central:
puntos MEDICION = DATOS,X:Y,limites_y=YMIN:YMAX
puntos MEDICION = DATOS,X:Y,limites_x=XMIN:XMAX,limites_y=YMIN:YMAX
También se aceptan límites en trazos de líneas. Tabular2 convierte centros y extremos a las unidades de presentación. El caso completo está en corpus/barras-error/errores.ds.
El mismo PARAPLOT conserva órdenes de los documentos antiguos: sceptrevars, variables, magnitudes, unidades e indices describen columnas; unipri elige la unidad de presentación del tiempo; arch_var y variaciones identifican corridas repetidas; selec recorta una fuente; guardar nombra la salida; nomostrar evita abrir gráficos que ya van en un panel; eco emite un mensaje; y funcion superpone una expresión matemática en x. Los metadatos explícitos prevalecen sobre los de la cabecera. Las expresiones de funcion se restringen a sintaxis matemática segura. SIMPLOT_VERSION ya no selecciona un motor: se ignora con aviso. El manual de fuentes y doc/PARAPLOT-UNICO.md detallan la compatibilidad.
Los gráficos históricos del tanque ilustran series, paneles, corridas y comparación con mediciones; sus imágenes se conservan como ejemplos, no como un segundo lenguaje:




simplot -i datos.simul permite elegir tablas y series en la terminal sin redactar antes PARAPLOT. Con simplot -i -sinventana datos.simul no abre X, aunque puede generar archivos. En cada gráfico se escribe, por ejemplo, 1:2,3: la columna anterior a : es X y las siguientes son Y; también se aceptan nombres de columna disponibles. Una respuesta vacía termina la selección del grupo; otra termina la etapa siguiente. Se pueden reunir gráficos en un panel o superponer series en un mismo gráfico, que son operaciones distintas. X igual a cero usa el índice de muestra, no un tiempo inventado. Para repetir exactamente un dibujo conviene guardar el pedido en PARAPLOT; para un solo estado, pedir puntos y escoger dos variables.
RESULTADOS, LISTA y UNIDADES preparan o seleccionan datos para todo el sistema, antes del dibujo; no son instrucciones exclusivas de Simplot. Su definición está en Siru y Gramática .ds. Simplot no calcula columnas ausentes, incertidumbres ni estadísticas: representa los datos recibidos. Si hace falta procesamiento numérico, corresponde hacerlo en Tabular2 u otro productor.
Tabular2 puede leer fechas completas y convertirlas a segundos epoch. Un eje temporal presenta esos valores como fecha y hora; sin zona explícita usa la zona de la máquina. Una hora sin fecha es una duración desde medianoche, y el tiempo relativo de una simulación no se convierte automáticamente en fecha de calendario.
La interfaz documental escribe el .ds con sus secciones GNUPLOT por stdout y muestra el dibujo en X. -noX evita las ventanas; -save guarda el documento y los SVG ejecutados, conservando una salida previa como _v1, _v2, etc. --no-ejecutar -save guarda solo el documento. Las opciones de compatibilidad -graf=4 y -sinventana generan PNG/EPS y archivos auxiliares, sin equivaler a -noX o -save. -i abre el diálogo descrito arriba.
Si falta una curva, comprobar nombre o número de columna, fuente, unidad de origen, bloque de datos y directorio de salida. Una sola fila necesita puntos y un eje logarítmico exige valores positivos. Los diagnósticos y archivos auxiliares pueden explicar un fallo de Gnuplot.
| Etapa | Herramienta |
|---|---|
| Producir valores | Siru, SCEPTRE, Calcula u otra fuente. |
| Procesar tablas numéricamente, cuando haga falta | Tabular2 u otro productor. |
| Describir qué dibujar | PARAPLOT, opcional; si falta, Simplot usa los datos y metadatos disponibles. |
| Construir el dibujo | Simplot junto con Gnuplot. |
| Representarlo | Pantalla, SVG, PNG, PDF o impresora según la salida elegida. |
Los textos de las seis páginas anteriores se conservan en doc/respaldo-web-2026-10-09/ y en el historial SVN. Esta página reúne su contenido vigente; las instrucciones y ejemplos antiguos que todavía son válidos se incorporaron arriba.