GNUPlottex

Page 1

Gráficas generadas con GNUPlot desde un archivo LATEX usando el paquete gnuplottex 1 Por: Darío Castro Castro (dariocas@uninorte.edu.co)

Con el apoyo incondicional de Antalcides Olivo 1

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 rerun the LATEX job. The author is Lars Kotthoff. The package is Copyright ©20062007 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 operativos más populares (Linux, UNIX, Windows, Mac OS X...). El origen de gnuplot data de 1986. 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á convenientemente mantenido por sus desarrolladores. Existe una ingente cantidad de ayuda en Internet, aunque gran parte está en inglés. gnuplot 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 cuenta el parecido con otros dos de los nombres propuestos, "llamaplot "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.

Figura 1: Gráfica generda en GNUPlot.

2

GNUPlottex bajo Windows: Instalación Paquetes necesarios Se asume aquí que usted tiene una implementación de LATEXtal como MiKTEX 2.8, o TEXLive 2009 2 y usando el editor de su preferencia (WinEdt, Led, TeXmakerX, etc.) Para generar gráficas desde un archivo .tex usando GNUPlot 4.5 debemos instalar los siguintes paquetes:

Figura 2: GNUPlot GUI Este archivo fue probado en MiKTEX 2.8 y TEXLive 2009

2


gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex

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 externo que ejecute línea de comandos. Además cargue los paquetes que allí aparecen. La salida se muestra en la figura 3.

2


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

1

y

0.5

0

-0.5

-1

-1.5 -20

-15

-10

-5

0

5

10

15

20

x

Figura 3: Un gráfica generada con GNUPlot 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} \begin{gnuplot}[scale=0.55,terminal=pdf] set parametric set angle degree set urange [0:360]

0.5 0 -0.5 -1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1 -1

-0.2 -0.4 -0.6 -0.8

set vrange [-90:90] fx(u,v)=cos(u)*cos(v) fy(u,v)=sin(u)*cos(v) 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.

Figura 4: Un gráfica generada con GNUPlot desde una archivo .tex

0

0.2

0.4

0.6

0.8

1


gr谩ficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex

1 sin(x) cos(x)

0.8 0.6 0.4 0.2 0 -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 -0.5

-1

0.5

0

1.5

1

2

x

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

1.5

1

y

0.5

0

-0.5

-1

-1.5

-2 -4

-3

-2

-1

0 x

1

2

3

4

4


gráficas generadas con gnuplot desde un archivo LATEX usando el paquete gnuplottex

5

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

1

$y$

0.5

0

-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

-0.5

-1

-1.5

-2

-2.5 -30

-20

-10

0

10

La gráfica mostrada en la 5 fue generada en forma manual directamente en GNUPlot y se insertó en el archivo .tex; el código para generarlas es: set terminal latex 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)

20

Cuando se genera un archivo LATEX en GNUPlot este lo guarda por defecto el la carpeta donde está instalado el GNUPlot a menos que se le especifique la ruta.


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 This is the x axis

5

6


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 favor lea la documentación asociada al estilo. http://www.ctan.org/tex-archive/macros/latex/contrib/gnuplottex/ gnuplottex.pdf

Soporte Los siguientes websites tiene información respecto al tema de este artículo 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/

Este artículo se escribió usando la clase tuftehandout. Para mayor información sobre esta clase vea la documentación incluida en MikTEX


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.