You are on page 1of 8

Gráficas generadas con GNUPlot desde un archivo

LATEX usando el paquete gnuplottex 1 1


Con el apoyo incondicional de
Antalcides Olivo
Por: Darío Castro Castro (dariocas@uninorte.edu.co)
6 de marzo de 2010
En este corto manual indicaré como utilzar GNUPlot 4.5 para generar
gráficas desde un archivo .tex.
Gnuplot code is extracted from the document and written to .gnuplot files.
Then, if shell escape is enabled, the graph files are automatically processed and
converted to PostScript or PDF files, which will then be included. If shell escape
is disabled, the user will have to manually run the files through gnuplot and re-
run the LATEX job. The author is Lars Kotthoff. The package is Copyright ©2006-
2007 Lars Kotthoff. (Tomado de la página de la CTAN del paquete gnuplottex)

GNUPlot es un programa muy flexible para generar gráficas de


funciones y datos. Este programa es compatible con los sistemas oper-
ativos más populares (Linux, UNIX, Windows, Mac OS X...). El origen
de gnuplot data de 1986. Figura 1: Gráfica generda en GNUPlot.
GNUPlot puede producir sus resultados directamente en pantalla,
así como en multitud de formatos de imagen, como PNG, EPS, SVG,
JPEG, etc. Se puede usar interactivamente o en modo por lotes (batch),
usando scripts. Este programa tiene gran base de usuarios y está con-
venientemente mantenido por sus desarrolladores. Existe una ingente
cantidad de ayuda en Internet, aunque gran parte está en inglés. gnu-
plot es la herramienta de dibujo de gráficas del programa GNU Octave.
A pesar de su nombre, este programa no tiene ninguna relación
con el Proyecto GNU. Originalmente, se eligió este nombre 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 cuen-
ta el parecido con otros dos de los nombres propuestos, "llamaplot 2
"nplot"(Gnu, en inglés, significa ñu).[1] Este programa se distribuye
bajo una licencia de software libre que permite la copia y modificación
de su código fuente. Sin embargo, las modificaciones sólo se pueden
distribuir en forma de parches, por lo que no es compatible con la
licencia GPL.

GNUPlottex bajo Windows: Instalación

Paquetes necesarios
Se asume aquí que usted tiene una implementación de LATEXtal co-
mo MiKTEX 2.8, o TEXLive 2009 2 y usando el editor de su preferencia
Figura 2: GNUPlot GUI
(WinEdt, Led, TeXmakerX, etc.) 2
Este archivo fue probado en MiKTEX
Para generar gráficas desde un archivo .tex usando GNUPlot 4.5 2.8 y TEXLive 2009
debemos instalar los siguintes paquetes:
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 2

El primer paso es instalar los paquetes

1. gnuplottex.sty (Este paquete está incluido en MikTEX 2.7 y superior)


2. gnuplot-lua-tikz.sty

También deberemos tener instalado GNUPlot 4.5 (preferiblemente


en C:\gnuplot4.5)

En un editor de texto crear el archivo gnuplo.bat y colocarlo en el


bin de MiKTEX. El archivo debe contener lo siguiente:

"C:\gnuplot4.5\gnuplot.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9

Como último paso debemos conocer los comandos de GNUPlot 4.5

Un ejemplo típico podría ser:

%&--src -interaction=nonstopmode --enable-write18


\documentclass[letter]{article}
\usepackage[miktex]{gnuplottex}
\usepackage{gnuplot-lua-tikz}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{gnuplot}[scale=0.9,terminal=pdf,terminaloptions=fsize 5 linewidth 1.5]
set grid
set title ’Gráfica de la función sin(x)/x’
set ylabel ’y’
set xlabel ’x’
plot [-20:20] [-1.5:1.5] sin(x)/x with lines
\end{gnuplot}
\end{document}

Observe la primera línea del archivo %&--src -interaction=nonstopmode --enable-write18.


No la elimine, ésta sirve para que LATEX pueda llmar un programa ex-
terno que ejecute línea de comandos. Además cargue los paquetes que
allí aparecen.
La salida se muestra en la figura 3.
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 3

Gráfica de la función sin(x)/x


1.5
sin(x)/x

0.5

0
y

-0.5

-1

-1.5
-20 -15 -10 -5 0 5 10 15 20
x
Figura 3: Un gráfica generada con GNU-
Plot desde una archivo .tex

En la 4 se muestra otro ejemplo de código para generar gráficas


usando GNUPlot fx(u,v), fx(u,v),fy(u,v), fx(u,v),fy(u,v),fz(v)

\begin{marginfigure}
1

\begin{center} 0.5

0
\begin{gnuplot}[scale=0.55,terminal=pdf] -0.5

set parametric -1

1
0.8
0.6
set angle degree -1 -0.8 0
0.2
0.4

-0.6 -0.4 -0.2


-0.2 0 -0.4
set urange [0:360] 0.2 0.4 0.6 0.8 1 -1
-0.8
-0.6

set vrange [-90:90]


fx(u,v)=cos(u)*cos(v)
Figura 4: Un gráfica generada con GNU-
fy(u,v)=sin(u)*cos(v) Plot desde una archivo .tex
fz(v)=sin(v)
splot fx(u,v),fy(u,v),fz(v)
\end{gnuplot}
\end{center}
\setfloatalignment{b}
\caption{Un gráfica generada con GNUPlot desde una archivo .tex}
\end{marginfigure}

Ejemplos

A continuación se muestran algunos ejemplos de gráficas generadas


directamente en este archivo.
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 4

1
sin(x)
0.8 cos(x)

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-10 -5 0 5 10

Función Exponencial e x
8
exp(x)
7

6
5
y 4
3

2
1
0
-1 -0.5 0 0.5 1 1.5 2
x

Varias funciones
2
exp(x)
-cos(x)
1.5 x**2
sin(x)/x
sqrt(cos(x))
1

0.5

0
y

-0.5

-1

-1.5

-2
-4 -3 -2 -1 0 1 2 3 4
x
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 5

función sinc(x)
1.5
sin(x)/x

0.5
$y$

-0.5

-1

-1.5
-20 -15 -10 -5 0 5 10 15 20
$x$

1.5
besj0(x)*0.12e1
(x**besj0(x))-2.5
1

0.5

-0.5

-1

-1.5

-2

-2.5
-30 -20 -10 0 10 20

La gráfica mostrada en la 5 fue generada en forma manual direc-


tamente en GNUPlot y se insertó en el archivo .tex; el código para
generarlas es: Cuando se genera un archivo LATEX en
GNUPlot este lo guarda por defecto el la

set terminal latex carpeta donde está instalado el GNUPlot


a menos que se le especifique la ruta.
set output "eg2.tex"
set size 5/5., 4/3.
set format xy "$%g$"
set title "This is a plot of $y=\\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "This is\\the\\$y$ axis"
plot [0:6.28] [0:1] sin(x)
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 6

Figura 5: Salida de GNUPlot pegada con


el comando input

0,8

0,6

This is the y axis

0,4

0,2

0
0 1 2 3 4 5 6
This is the x axis
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 7

Los códigos
\begin{gnuplot}[scale=0.9,terminal=pdf,terminaloptions=fsize 8 linewidth 1.5]
plot sin(x), cos(x)
\end{gnuplot}

\begin{gnuplot}[scale=0.9]
set grid
set title ’Función Exponencial $e^x$’
set ylabel ’$y$’
set xlabel ’$x$’
plot [-1:2] exp(x) with lines
\end{gnuplot}

\begin{gnuplot}[scale=0.82,terminal=pdf]
set grid
set title ’Varias funciones’
set ylabel ’y’
set xlabel ’x’
plot [-4:4] [-2:2] exp(x), -cos(x), x**2, sin(x)/x, sqrt(cos(x)) with lines
\end{gnuplot}

\begin{gnuplot}[scale=.9,terminal=pdf,terminaloptions=fsize 5 linewidth 1.5]


set grid
set title ’función sinc(x)’
set ylabel ’$y$’
set xlabel ’$x$’
plot [-20:20] [-1.5:1.5] sin(x)/x with impulses
\end{gnuplot}

\begin{gnuplot}[scale=0.9,terminal=pdf, terminaloptions=fsize 6 linewidth 1.5]


# set terminal png transparent nocrop enhanced font arial 8 size 420,320
# set output ’simple.4.png’
set grid
set key inside left top vertical Right noreverse enhanced autotitles box linetype -1 linewidth 1.000
set samples 200, 200
plot [-30:20] besj0(x)*0.12e1 with impulses, (x**besj0(x))-2.5 with points
\end{gnuplot}

\begin{figure}
\input{eg2.tex}
\caption{Salida de GNUPlot pegada con el comando \verb"\input"}\label{gnu2}
\end{figure}
gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex 8

Mas Documentación

Para más documentación sobre el paquete gnuplottex.sty por fa-


vor lea la documentación asociada al estilo.

http://www.ctan.org/tex-archive/macros/latex/contrib/gnuplottex/
gnuplottex.pdf

Soporte
Este artículo se escribió usando la clase tufte-
Los siguientes websites tiene información respecto al tema de este handout. Para mayor información sobre es-
artículo ta clase vea la documentación incluida en
MikTEX

http://www.texample.net/tikz/examples/gnuplot-basics/

http://www.texample.net/tikz/examples/tag/gnuplot/

http://www.texample.net/tikz/examples/gnuplot-tikz-terminal/

http://peter.affenbande.org/gnuplot/

http://www.texample.net/tikz/examples/gnuplot-basics/

You might also like