4-tikz

16

Click here to load reader

Upload: pablo-caceres-perez

Post on 08-Aug-2015

112 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 4-tikz

Edición de textos científicos con software libre

Daniel López Avellaneda (matematicasies.com)

TikZGráficos con TikZ

Manual para el curso online organizado por:CEP Indalo

http://www.cepindalo.es

Marzo 2012 - Mayo 2012

Page 2: 4-tikz

ÍNDICE #1

Índice

1. Introducción a TikZ 21.1. ¿Qué es TikZ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Usando TikZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Primeros gráficos 42.1. Coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Escalas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4. Rejilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.5. Figuras: Círculo, rectángulo . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.6. Flechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.7. Grosor de línea: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.8. Estilo de línea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.9. Colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.10. Recortar a una ventana : clip . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3. Curvas 113.1. Dibujar una curva: plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Programas auxiliares 134.1. Geogebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Gráficos con TikZ

Page 3: 4-tikz

1 INTRODUCCIÓN A TIKZ #2

1 Introducción a TikZ

1.1 ¿Qué es TikZ?TikZ es un paquete para LATEX que permite incluir gráficos de forma nativa en el pdf

resultante.¿Qué diferencia hay entre incluir un gráfico nativo de LATEX e incluir una imagen? Hay una

enorme diferencia. Vea la siguientes imágenes ya haga zoom en el pdf y observe los resultados:

gráfico insertado como imagen

gráfico nativo con TikZ

A

B

C28,47◦

57,66◦

93,87◦

Gráficos con TikZ

Page 4: 4-tikz

1 INTRODUCCIÓN A TIKZ #3

1.2 Usando TikZPara usar el paquete de gráficos TikZ debemos incluirlo en el preámbulo:

\usepackage{tikz}

En LYX debemos ir al manú Documento / Configuración y seleccionar el apartado PreámbuloLATEX. En dicho preámbulo es donde incluiremos la orden \usepackage{tikz}

Para incluir un gráfico de tikz en nuestro documento usaremos el siguiente código LATEX:

\begin{tikzpicture}....\end{tikzpicture}

Veamos un ejemplo:

\begin{tikzpicture}\draw (0,0)--(3,0)--(3,3)--(0,0);\draw (0,0) circle (1) ;\end{tikzpicture}

Creará la siguiente imagen:

Gráficos con TikZ

Page 5: 4-tikz

2 PRIMEROS GRÁFICOS #4

2 Primeros gráficos

La siguiente imagen

está generada por el siguiente código:

\begin{tikzpicture}[scale=2]\draw (0,0) circle (1) ;\draw (1,0) -- (0,1) -- (0,-1) -- (1,0);\draw[help lines] (-2,-2) grid (2,2);\end{tikzpicture}

Hemos usado los siguientes recursos, que veremos más adelante:

segmentos

escala

coordenadas

rejilla

figuras (círculo)

Gráficos con TikZ

Page 6: 4-tikz

2 PRIMEROS GRÁFICOS #5

2.1 CoordenadasTikz usa siempre unas coordenadas cartesianas como referencia para dibujar trazos y figuras

planas, aunque también es posible introducirle comandos en coordenadas polares.En los siguientes comandos veremos expresiones del tipo (a,b) que representarán el punto

del plano (a,b).

2.2 SegmentosEl siguiente código completa un triángulo mediante tres segmentos:

\draw (1,0) -- (0,1) -- (0,-1) -- (1,0);

Dibuja un segmeto desde el punto (0,0) hasta el punto (0,1). Otro segmento desde (0,1) hasta(0,-1) y otro desde (0,-1) hasta (1,0).

2.3 EscalasLa siguiente orden

\begin{tikzpicture}[scale=2]

contiene el parámetro [scale=2] que significa una escala de 2 cm entre cada valor entero de losejes de coordenadas, es decir, entre el punto (1,0) y el (2,0) hay 2 cm.

Cuando no ponemos el parámetro scale, tomará por defecto un [scale=1], por tanto 1 cmde separación entre dos valores enteros consecutivos de los ejes.

Es posible usar escalas diferentes para cada uno de los ejes, por ejemplo:

\begin{tikzpicture}[xscale=2][yscale=0.5]

2.4 RejillaPara dibujar una rejilla de ayuda usaremos el comando:

\draw[help lines] (-2,-2) grid (2,2);

donde (-2,2) es el punto inferior-izquierdo y (2,2) el punto superior -derecho. Ambos puntosdeterminan los vértices opuestos de un rectángulo donde dibujará rejilla.

Gráficos con TikZ

Page 7: 4-tikz

2 PRIMEROS GRÁFICOS #6

2.5 Figuras: Círculo, rectánguloLas siguientes líneas de texto:

\draw (0,0) circle (2);\draw (1,0) rectangle (3,2);\draw[help lines] (-3,-3) grid (4,3);

dibujarán una circunferencia de centro (0,0) y radio 2 y un rectángulo cuya diagonal está deter-minada por los puntos (0,0) y (3,2). La tercera línea añadirá una rejilla de diagonal determinadapor los puntos (-3,3) y (4,3)

Para dibujar figuras rellenas usaremos el parámetro fillAl ejemplo anterior le añadimos el parámetro [fill=orange] para que dibuje el rectángulo

relleno de color naranja.

Gráficos con TikZ

Page 8: 4-tikz

2 PRIMEROS GRÁFICOS #7

2.6 Flechas\draw[->] (0,0) -- (3,0);\draw[<-] (0,0) -- (3,0);\draw[|->] (0,0) -- (3,0);\draw[<->] (0,0) -- (3,0);

2.7 Grosor de línea:\draw [ultra thick] (0,1) -- (2,1);\draw [thick] (0,0.5) -- (2,0.5);\draw [thin] (0,0) -- (2,0);

Otras opciones: ultra thin , very thin , thin , semithick , thick , very thick, ultra thickTamaño personalizado:

\draw [line width=6] (0,0) -- (2,0);

2.8 Estilo de línea\draw [dashed, ultra thick] (0,1) -- (2,1);\draw [dashed] (0, 0.5) -- (2,0.5);\draw [dotted] (0,0) -- (2,0);

Gráficos con TikZ

Page 9: 4-tikz

2 PRIMEROS GRÁFICOS #8

Otras opciones: dotted, loosely dotted, densely dottedOtras opciones: dashed, loosely dashed, densely dashedDoble línea:

\draw [double] (0,0) -- (1,0);\draw [double distance = 5pt] (0,0) -- (1,0);

2.9 Colores\draw [red] (0,3) -- (4,3);\draw [blue][double distance = 3pt] (0,2) -- (4,2);

Colores:red, green, blue, cyan, yellow, magenta, black, white, gray[color=gray!20] sería un gris a un 20%Toda la figura en rojo:

\begin{tikzpicture}[red]

Usar cualquier color:En el preámbulo:

\usepackage [usenames,dvipsnames]{color}

Después usaríamos [color=blue!40!red] (sería un 40% azul y el 60% rojo)

Gráficos con TikZ

Page 10: 4-tikz

2 PRIMEROS GRÁFICOS #9

2.10 Recortar a una ventana : clipEl siguiente código:

\begin{tikzpicture}\draw[help lines] (-5,-5) grid (5,5);\draw (0,0) circle(4);\draw (-3,-2) rectangle (3,2);\end{tikzpicture}

producirá este dibujo:

Si le añadimos al principio la línea:

\clip (-4,-2.5) rectangle (4,2.5);

nos recortrá la ventana de visualización al rectángulo de diagonal determinada por los puntos(-4,-2.5) y (4,2.5);

Gráficos con TikZ

Page 11: 4-tikz

2 PRIMEROS GRÁFICOS #10

\begin{tikzpicture}\clip (-4,-2.5) rectangle (4,2.5);\draw[help lines] (-5,-5) grid (5,5);\draw (0,0) circle(4);\draw (-3,-2) rectangle (3,2);\end{tikzpicture}

Gráficos con TikZ

Page 12: 4-tikz

3 CURVAS #11

3 Curvas

3.1 Dibujar una curva: plot\begin{tikzpicture}\draw [<->](0,-4)--(0,4);\draw [<->](-6,0)--(6,0);\draw [help lines] (-6,-4) grid (6,4);\draw [red] plot [domain=-6:6] (\x, 0.5*\x);\end{tikzpicture}

En el gráfico anterior hemos dibujado los ejes (con un par de flechas) y una rejilla segúnhemos visto en apartados anteriores.

La línea:

\draw [red] plot [domain=-6:6] (\x, 0.5*\x);

dibuja en rojo la función y = 0,5 · x. Hemos definido el dominio en [-6,6] (si no indicamosdominio, tomará por defecto [-5,5]).

Observe también que la variable x va precedida de barra inversa(\).

Gráficos con TikZ

Page 13: 4-tikz

3 CURVAS #12

Veamos otro ejemplo:

\begin{tikzpicture}\draw [<->](0,-1)--(0,3);\draw [<->](-1,0)--(4,0);\draw [help lines] (-1,-1) grid (4,3);\draw [red] plot [domain=0.5:4] (\x, 1/\x);\fill[color=gray!20] (1,0)--(1,1)-- plot [domain=1:2] (\x,1/\x)--(2,0)--cycle;\end{tikzpicture}

En este ejemplo, además de dibujar ejes, rejilla y una función, he añadido la línea:

\fill[color=gray!20] (1,0) -- (1,1) -- plot [domain=1:2] (\x,1/\x) -- (2,0) -- cycle;

En ella decimos que dibuje una figura rellena (fill) de color gris a un 20% formada por cuatrotrazos, uno de ellos es un trozo de función. El último trozo (2,0)--cycle también se puedeexpresar de la forma (2,0) -- (1,0). Con cycle le estamos diciendo que cierre el polígono.

También podemos expresar coordenadas en tres dimensiones. El siguiente código dibujaun cubo.

\draw (0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle;\draw (0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle;\draw (0,0,0) -- (0,0,1);\draw (1,0,0) -- (1,0,1);\draw (1,1,0) -- (1,1,1);\draw (0,1,0) -- (0,1,1);

Gráficos con TikZ

Page 14: 4-tikz

4 PROGRAMAS AUXILIARES #13

4 Programas auxiliares

Puede resultar engorroso aprenderse tantos comandos para dibujar. Afortunadamente hayprogramas que lo harán por nosotros. Quizás el mejor sea Geogebra

4.1 GeogebraEl programa geogebra permite exportar cualquier dibujo a código PGF/Tikz.En primer lugar haremos una construcción sencilla con geogebra. Dibujamos la función

y = x2 (basta con teclear x^2 en el campo de entrada en la parte inferior). Haciendo clicderecho sobre la parábola, seleccionamos propiedades, le ponemos un color y en estilo ponemosun trazo más grueso. Quedaría algo así:

Ahora seleccionamos el menú Archivo / Exporta / Vista gráfica com PGF/TiKx

Gráficos con TikZ

Page 15: 4-tikz

4 PROGRAMAS AUXILIARES #14

Pulsamos sobre Genera código PGZ/TiKZ y obtenemos el siguiente código:

\documentclass[10pt]{article}\usepackage{pgf,tikz}\usetikzlibrary{arrows}\pagestyle{empty}\begin{document}\definecolor{ffqqqq}{rgb}{1,0,0}\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}\begin{tikzpicture}[line cap=round,linejoin=round,>=triangle 45,x=1.0cm,y=1.0cm]\draw [color=cqcqcq,dash pattern=on 3pt off 3pt, xstep=1.0cm,ystep=1.0cm] (-4.3,-1.26) grid (4.28,6.3);\draw[->,color=black] (-4.3,0) -- (4.28,0);\foreach \x in {-4,-3,-2,-1,1,2,3,4}\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};\draw[->,color=black] (0,-1.26) -- (0,6.3);\foreach \y in {-1,1,2,3,4,5,6}\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt)node[left] {\footnotesize $\y$};\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};\clip(-4.3,-1.26) rectangle (4.28,6.3); \draw[line width=2pt,color=ffqqqq,smooth,samples=100,domain=-4.300000000000001:4.2799999999999985]plot(\x,{(\x)^2});\end{tikzpicture}\end{document}

LIncluimos en el preámbulo los paquetes y librerías que necesita:

\usepackage{pgf,tikz}\usetikzlibrary{arrows}

En el documento ponemos, mediante insertar código LATEX, todo el código que hay entre \be-gin{document} y \end{document}

\definecolor{ffqqqq}{rgb}{1,0,0}\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}...plot(\x,{(\x)^2});\end{tikzpicture}

Gráficos con TikZ

Page 16: 4-tikz

4 PROGRAMAS AUXILIARES #15

Y ya tenemos nuestro gráfico nativo-LATEX con TiKz.Para comprobar que es un gráfico nativo y no una imagen, amplie el pdf resultante y

observará como la imagen no se distorsiona.

−4 −3 −2 −1 1 2 3 4

−1

1

2

3

4

5

6

0

Gráficos con TikZ