# Gnuplot

gnuplot es un programa de interfaz de línea de comandos para generar gráficas de dos y tres dimensiones de funciones, datos y ajustes de datos, el cual es compatible con los sistemas operativos más populares (Linux, UNIX, Windows y Mac OS X, entre otros) y cuya historia se remonta al año de 1986. Existe una ingente cantidad de ayuda en Internet, aunque gran parte de ella, está en idioma inglés.

## Características

gnuplot puede producir resultados directamente en la pantalla, o en muchos formatos de archivos gráficos, incluidos Portable Network Graphics (PNG), PostScript encapsulado (EPS), Gráficos vectoriales escalables (SVG), JPEG y muchos otros. También es capaz de producir código en el sistema de composición de textos y gráficos LaTeX que se puede incluir directamente en los documentos de LaTeX, haciendo uso de las fuentes de LaTeX y las potentes capacidades de notación de fórmulas. El programa se puede utilizar tanto de forma interactiva como en modo por lotes utilizando scripts.
gnuplot puede leer datos en múltiples formatos, incluida la capacidad de leer datos sobre la marcha generados por otros programas, crear múltiples gráficos en una imagen, hacer 2D, 3D, gráficos de contorno, ecuaciones paramétricas , admite varios sistemas de coordenadas lineales y no lineales, proyecciones, lectura y presentación de datos geográficos y de tiempo, diagramas de caja de varias formas, histogramas, etiquetas y otros elementos personalizados en el diagrama, incluidas formas, texto e imágenes, que se pueden configurar manualmente, calculado por script o automáticamente a partir de datos de entrada.
gnuplot también proporciona capacidades de scripting, bucles, funciones, procesamiento de texto, variables, macros, preprocesamiento arbitrario de datos de entrada (generalmente entre columnas), así como la capacidad de realizar ajustes de datos ponderados multidimensionales multidimensionales no lineales (ver Ajuste de curvas y Algoritmo de Levenberg-Marquardt).
El código central de gnuplot está programado en C. Los subsistemas modulares para salida a través del marco de trabajo Qt, wxWidgets y LaTeX/TikZ/ConTeXt están escritos en los lenguajes C++ y Lua.
El siguiente código crea el gráfico de la derecha.
* Un diagrama de dispersión de muestras desde un archivo de texto
* Un diagrama de dispersión de muestras desde un archivo de texto
* Una espiral logarítmica
* Una espiral logarítmica
El nombre de este programa se eligió originalmente para evitar conflictos con un programa llamado "newplot", y originalmente era un compromiso entre "llamaplot" y "nplot".

## Términos de distribución

A pesar de su nombre, este programa no tiene relación alguna con el Proyecto GNU, ni utiliza la Licencia Pública General de GNU. Originalmente, se eligió el nombre "gnuplot" para evitar conflictos con otro programa de dibujo de gráficas llamado "newplot", que en inglés se pronuncia de igual modo. También se tuvo en cuenta el parecido con otros dos de los nombres propuestos, "llamaplot" y "nplot" (Gnu, en inglés, significa ñu).
El código fuente oficial de gnuplot es libremente redistribuible, pero las versiones modificadas del mismo no lo son. La licencia de gnuplot recomienda, en cambio, la distribución de parches contra los lanzamientos oficiales, opcionalmente acompañados por un código fuente publicado oficialmente. Los archivos binarios se pueden distribuir junto con el código fuente no modificado y cualquier parche aplicado al mismo. La información de contacto debe ser suministrada con trabajos derivados para soporte técnico para el software modificado.
A pesar de esta restricción, gnuplot es aceptado y utilizado por muchos paquetes de GNU y está ampliamente incluido en las distribuciones de GNU/Linux, incluidas las más estrictas, como Debian y Fedora. La definición de código abierto de OSI y las pautas de software libre de Debian permiten específicamente restricciones en la distribución del código fuente modificado, dado el permiso explícito para distribuir parches y código fuente.
Los módulos más nuevos de gnuplot (por ejemplo, Qt, wxWidgets y controladores cairo) se han contribuido bajo términos de doble licencia, por ejemplo gnuplot + BSD o gnuplot + GPL.

## Interfaces Gráficas de Usuario y programas que usan gnuplot

Varios programas de terceras partes que tienen interfaces gráficas de usuario, los cuales se usan para generar gráficos, usan gnuplot como motor de trazado. Entre ellos, se incluyen:
* gretl, paquete de estadísticas para econometría.
* JGNUPlot, programa de interfaz gráfica, basado en Java.
* Kayali, un sistema algebraico computacional.
* xldlas, un antiguo paquete de estadísticas, bajo GNU/LInux, para el sistema de ventanas X11.
* gnuplotxyz, un antiguo software bajo Windows.
* wxPinter, un gestor gráfico para gnuplot.
* Maxima, sistema de álgebra computacional basado en texto con diversas interfaces gráficas.
Otros programas que usan gnuplot incluyen:
* GNU Octave, un lenguaje de programación matemático.
* statist, programa basado en terminal.
* gplot.pl, programa con interfaz de línea de comandos sencilla.
* feedgnuplot, programa que proporciona el trazado de curvas de datos almacenados y en tiempo real, mediante tuberías.
* ElchemeaAnalytical, un programa de trazado y ajuste de espectroscopía de impedancia desarrollado por DTU Energy.
* Gnuplot, programa de complemento para Microsoft Excel.

## Interfaces de aplicación y programación

gnuplot puede usarse desde varios lenguajes de programación para graficar datos, incluidos Perl (a través del lenguaje de Datos Perl y otros paquetes de la red CPAN), Python (a través de los paquetes gnuplotlib y Gnuplot-py y el software SageMath), Julia (a través de Gaston.jl), Java (a través de JavaGnuplotHybrid y jgnuplot) , Ruby (a través de Ruby Gnuplot), Ch (a través de Ch Gnuplot), Haskell (a través de Haskell gnuplot), Fortran 95, y Smalltalk (Squeak y GNU Smalltalk).