32 0 410KB
Gu´ıa del paquete Tikz Daniel S´anchez S´anchez Matem´aticas - Universidad de Cartagena
4 de noviembre de 2021
2
´Indice general 1. DIBUJOS CON TikZ
7
´ 1.1. DIBUJOS BASICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.1.1. Segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.1.2. Rect´ angulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.1.3. Cuadr´ıculas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.1.4. C´ırculos y elipses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.1.5. Par´ abolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.1.6. Curvas con controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.7. Curvas con coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.8. Arcos con arc
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.9. Arcos con edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ´ DE PUNTO Y NODOS . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2. DEFINICION 1.2.1. Definici´ on de puntos con coordinate y node . . . . . . . . . . . . . . . . . . 14 1.2.2. Posici´ on del texto en un nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.3. Posici´ on del nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.4. Dibujos utilizando nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ´ 1.3. PARAMETROS OPCIONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1. Escalar la figura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.2. Rotaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.3. Traslaci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.4. Relleno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.5. Background con forma de ´esfera . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.6. Color del trazo y color del texto . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.7. Mezclar colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.8. Definici´ on de colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.9. Tipo de color y ubicaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3
´INDICE GENERAL
1.3.10. Delinear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.11. L´ınea doble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.12. Grosor y estilo de l´ıneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.13. Redondear esquinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3.14. Nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3.15. Forma de la l´ınea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ´ 1.4. MANEJO DE PARAMETROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.1. Ambiente scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.2. Comando clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.3. Definici´ on de estilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5. OPCIONES DE LIBRER´IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.1. Liber´ıa shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.2. Librer´ıa shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.3. Librer´ıa fit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.5.4. Librer´ıa positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.5.5. Intersecci´ on de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 ´ EN LATEX . . . . . . . . . . . . . . . . . . . . 24 1.6. ELEMENTOS DE PROGRAMACION 1.6.1. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6.2. Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6.3. Ciclos (comando foreach) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.7. COORDENADAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.7.1. Coordenadas cartesianas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.7.2. Coordenadas absolutas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.7.3. Coordenadas relativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.7.4. Coordenadas polares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.7.5. Coordenadas cartesianas en R3 . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ´ SOFISTICADOS 1.8. DIBUJOS MAS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.8.2. Curvas param´etricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.8.3. Datos estad´ısticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2. DIBUJOS CON PGFPLOTS
33
2.1. DIBUJOS SOFISTICADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.1.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4
´ nchez Sa ´ nchez Daniel Sa 2.1.2. Funciones en coordenadas polares . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.1.3. Superficies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.1.4. Curvas param´etricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5
´INDICE GENERAL
6
Cap´ıtulo 1
DIBUJOS CON TikZ 1.1.
´ DIBUJOS BASICOS
Para comenzar a crear nuestros dibujos por medio de TikZ en LATEX, partimos del uso del paquete esencial \usepackage{tikz} a medida que se requiera se deber´a agregar librerias propias del paquete por medio del comando: \usetikzlibrary{ libreria 1, libreria 2, ...} Ser´an muy utiles para agregar figuras cada vez m´as sotisficadas. Un ejemplo de estas librer´ıa son: calc, arrows, shapes, shadows, decorations etc. todo dibujo con tikz debe estar encerrado por el ambiente \begin{tikzpicture} ...; \end{tikzpicture} o tambi´en puede este comando para una sola l´ınea \tikz
l´ ına de comando
;
Nota 1.1.1. Es muy importante terminar cada linea de comando punto y coma (;) para indicar que all´ı termina la l´ınea de comandos. Nota 1.1.2. Es muy importante aclarar que tikz tiene conflictos con el paquete \usepackage{babel} y su par´ ametro opcional spanish, ya que ambos definen como caracteres activos a < y >, babel para el entrecomillado multinivel y tikz para las flechas de las l´ınas. Una forma de eliminar este conflicto es usando: \usepackage[spanish,es-noshorthands]{babel}
7
´ 1.1. DIBUJOS BASICOS
Al igual que en geometr´ıa anal´ıtica los puntos en TikZ se definen con pares ordenados. las unidades en Tikz por defecto son en cent´ımetros (cm); por lo tanto no hay distinci´on entre (x,y) y (xcm,ycm) (-7,2.65) y (-7cm,2.65cm).
1.1.1.
Segmentos
El comando utilizado para hacer cualquier tipo de trazo o dibujo es \draw. Asi haremos una l´ınea; especificando los extremos de ella. \draw (punto1) -- (punto2)
\begin{tikzpicture} \draw (0,0) -- (4,0); \end{tikzpicture} \begin{tikzpicture} \draw (0,0) -- (4,2); \end{tikzpicture} La uni´on de varios segmentos nos permitir´a realizar nuestros primeros dibujos, para ello se finalizar´a con la palabra cycle que enlazar´a el primer punto con el u ´ltimo. \draw (punto1) -- (punto2) --...-- (punto-n) -- cycle;
\begin{tikzpicture} \draw (0,0) -- (4,2) -- (4,0) -- (0,2) -- cycle; \end{tikzpicture}
1.1.2.
Rect´ angulos
La construcci´ on de rect´ angulos ser´ a mediante los puntos inferior izquierdo y superior derecho \draw (punto inferior izquierdo) rectangle (punto superior derecho);
\begin{tikzpicture} \draw (0,0) rectangle (1.5,0.75); \end{tikzpicture} 8
´ nchez Sa ´ nchez Daniel Sa
1.1.3.
Cuadr´ıculas
El comando grid Permite elaborar cuadr´ıculas. Se debe indicar las coordenadas del punto donde inicia (esquina inicial) y el punto donde termina (esquina final). Est´as cuadriculas resultan muy u ´tiles para cuando se gr´ afican planos cartesianos. \draw (esquina incial) grid (esquina final);
\begin{tikzpicture} \draw (-1,0) grid (3,3); \end{tikzpicture}
Con el comando help lines puede hacer que las lineas de la cuadr´ıcula sean mas opacas.
\begin{tikzpicture} \draw[help lines] (-1,0) grid (3,3); \end{tikzpicture}
Con el comando step, puede ajustar el tama˜ no de paso de las cuadr´ıculas.
\begin{tikzpicture} \draw[help lines, step=0.5cm] (-1,0) grid (3,3); \end{tikzpicture}
Podemos cambiar el color de la cuadr´ıcula con help lines/.style{color}.
1.1.4.
C´ırculos y elipses
Los c´ırculos se construyen especificando su centro y su radio: \draw (centro) circle (radio);
\begin{tikzpicture} \draw (0,0) circle (1.5); \end{tikzpicture}
9
´ 1.1. DIBUJOS BASICOS
La construcci´ on de la elipse es similar a la del c´ırculo, pero en este caso se define mediante sus ejes (paralelos al eje X y Y , respectivamente) y su centro. \draw (centro) ellipse (eje1 and eje2); o tambi´en \draw (centro) circle (eje1 and eje2); \begin{tikzpicture} \draw (0,0) ellipse (0.7 and 1); \end{tikzpicture}
\begin{tikzpicture} \draw (0,0) circle (0.7 and 1); \end{tikzpicture} Resulta muy u ´til a la hora de representar puntos en nuestro dibujo hacer circulos con radios muy peque˜ nos que nos permitan representar dicho punto. Muchas gr´ aficas de funciones y dibujos requieren una curva no necesariamente circular, para ello se utilizar´a la instrucci´ on controls. Esta permitir´a “estirar” el segmento al punto o a los puntos indicados \draw (extremo1) controls (punto1) and ... and (punto n) .. (extremo2);
1.1.5.
Par´ abolas
Para construir parabolas podemos usar el comando parabola definiendo un punto inicial y punto final o el comando parabola bend definiendo punto inicial, v´ertice y punto final. \draw (punto inicial) parabola (punto final); \begin{tikzpicture} \draw (0,0) parabola (1.5,2); \end{tikzpicture}
\draw (punto inicial) parabola bend (vertice) (punto final);
\begin{tikzpicture} \draw (0,0) parabola bend (1.25,2.25) (1.75,2); \end{tikzpicture}
10
´ nchez Sa ´ nchez Daniel Sa
1.1.6.
Curvas con controls
con el comando controls se puede hacer trazos suavizados, evitando esquinas. Acontinuaci´ on se muestra un trazo recto y este mismo trazo pero con el comando controls.
Se llamar´ a punto de control a aquellos punto en los cuales se suaviza el trazo y se evita tener una esquina. La sintaxis para controls es:
\draw(puntoinicio) .. controls(puntocontrol1)and(puntocontrol n) .. (puntofinal);
por ejemplo \begin{tikzpicture} \filldraw (0,0) circle (2pt); \filldraw (1,1) circle (2pt); \filldraw (2,0) circle (2pt); \filldraw (4,1) circle (2pt); \draw (0,0) .. controls (1,1) and (3,0) .. (4,1); \end{tikzpicture}
1.1.7.
Curvas con coordinates
Para gr´aficar curvas resulta muy u ´til la combinaci´on de los siguientes tres comandos plot, smooth y cordinates. Para gr´ aficar una curva se necesitan n-puntos que se unir´an por recta y se suavizaran los trazos de estas rectas. La sintaxis es:
\plot[smooth] coordinates{(punto1)(punto2)...(punto n)}
Veamos acontinuaci´ on un ejemplo de una curva unidad por segemento de rectas (para este ejemplo se usaron muchos puntos) y veamos un ejemplo con segmentos de rectas suavizados usando la sintaxis mostrada anteriormente (para este ejemplo se us´o menos de la mitad de punto que en el ejemplo anterior). Ambas gr´ aficas aproximan a f (x) = 3 sin(x). 11
´ 1.1. DIBUJOS BASICOS
\begin{tikzpicture} \draw[arrows=->] (-0.5,0) -- (7,0); \draw [arrows=->] (0,-3) -- (0,3.25); % MUCHOS PUNTOS \draw (0,0)--(0.083,0.25)--(0.167,0.5)--(0.253,0.75)--(0.34,1)--(0.43,1.25)-(0.523,1.5)--(0.623,1.75)--(0.73,2)--(0.848,2.25)--(0.985,2.5)--(1.16,2.75)-(1.57,3)--(1.982,2.75)--(2.156,2.5)--(2.294,2.25)--(2.412,2)--(2.519,1.75)-(2.618,1.5)--(2.712,1.25)--(2.802,1)--(2.889,0.75)--(2.974,0.5)--(3.058,0.25)-(3.1416,0)--(3.225,-0.25)--(3.309,-0.5)--(3.394,-0.75)--(3.481,-1)--(3.571,-1.25) --(3.66,-1.5)--(3.764,-1.75)--(3.871,-2)--(3.99,-2.25)--(4.127,-2.5)-(4.301,-2.75)--(4.71,-3)--(5.124,-2.75)--(5.298,-2.5)--(5.435,-2.25)--(5.553,-2) --(5.66,-1.75)--(5.76,-1.5)--(5.853,-1.25)--(5.943,-1)--(6.031,-0.75)-(6.116,-0.5)--(6.2,-0.25)--(6.283,0); \end{tikzpicture}
\begin{tikzpicture} \draw[arrows=->] (-0.5,0) -- (7,0); \draw [arrows=->] (0,-3) -- (0,3.25); 12
´ nchez Sa ´ nchez Daniel Sa % POCOS PUNTOS, SUAVIZACION APROXIMADA \draw plot[smooth] coordinates {(0,0)(0.167,0.5)(0.523,1.5)(0.985,2.5)(1.57,3)(2.156,2.5)(2.618,1.5)(2.974,0.5) (3.309,-0.5)(3.66,-1.5)(4.127,-2.5)(4.71,-3)(5.298,-2.5)(5.76,-1.5)(6.116,-0.5) (6.283,0)}; \end{tikzpicture}
1.1.8.
Arcos con arc
Para gr´aficar arcos podemos usar \draw (punto inicial) arc (grado inicial:grado final:radio) Para tener idea de la construcci´ on de arcos, vea la siguiente gr´afica. En la figura 1.1 para generar el arco azul se utiliz´ o: \tikz \draw (0,3) arc (90:210:3);
u
Figura 1.1: Arcos con arc
Donde los ´angulos son medidos con respecto a un ejer polar u, el radio es la distancia del arco al origen del eje polar u (no necesariamente este coincida con el origen de coordenadas). el arco parte desde el punto inicial que le indiquemos hasta cumplir con el ´angulo final medido con respecto al ejer polar u. (el radio y ´angulo inicial; definen la ubicaci´on del eje u, si cambia estos, entonces tambi´en tendr´ a un nuevo eje u)
\begin{tikzpicture} \draw (0,0) arc (180:90:2); \end{tikzpicture}
\begin{tikzpicture} \draw (0,0) arc [start angle=180,end angle=90,radius=2]; \end{tikzpicture}
1.1.9.
Arcos con edge
Para gr´aficar arcos podemos usar el siguiente comando \draw (punto inicial) edge[out=´ ang inicial, in=´ ang final] (punto final); Para tener m´ as idea de la naturaleza de los ´angulos necesario para gr´aficar arcos observe la siguiente figura 13
´ DE PUNTO Y NODOS 1.2. DEFINICION
in = 155
out = 35 ´ Figura 1.2: Angulos para gr´aficar arcos
\begin{tikzpicture} \draw (1.6,1.6) edge[out=155, in=155] (5,3.25); \begin{tikzpicture}
Nota 1.1.3. Si desea hacer modificaciones (secci´on 1.3) al arco, coloque las modificaciones dentro de edge[] y no dentro de \draw[] como es costumbre. por ejemplo para colocar punta al arco vea el siguiente ejemplo.
\begin{tikzpicture} \draw (1.6,1.6) edge[out=32, in=155,arrows=->] (5,3.25); \end{tikzpicture}
1.2. 1.2.1.
´ DE PUNTO Y NODOS DEFINICION Definici´ on de puntos con coordinate y node
Podemos definir los puntos con: \coordinate: Asigna un nombre a un punto (x, y). \coordinate (A) at (x,y); A pesar de que no se dibuje el punto, se declara la existencia de ´el y se le asigna un nombre. Por ejemplo: puede tomar dos puntos del plano, al primero se le asignar´a el nombre A y al segundo se le asigna el nombre B, luego se trazar´a el segmento que va de A a B. \begin{tikzpicture} \coordinate (A) at (-1,0); \coordinate (B) at (3,3); \draw (A) -- (B); \end{tikzpicture}
\node: funciona igual que \coordinate, es decir; 14
´ nchez Sa ´ nchez Daniel Sa \coordinate (A) at (x,y); y \node (A) at (x,y); son equivalentes. Adem´ as, tiene la ventaja de que permite insertar texto: \node (B) at (x,y){texto}; Entre los corchetes {
} se puede insertar texto corriente o c´odigo LATEX. B \begin{tikzpicture} \node (A) at (-1,0){$a$}; \node (B) at (3,3){$B$}; \draw (A) -- (B); \end{tikzpicture}
a Esta posibilidad de insertar texto resulta muy u ´til, por ejemplo para colocar etiquetas a las funciones, en la subsecci´ on 1.2.4 veremos algunos ejemplos del uso coordinate y node. Nota 1.2.1. Los nodos no son solo para punto se le puede agregar nodos a cualquier trazo, ya sea segmento, parabola, c´ ırculo etc. La forma de hacer eso es, por ejemplo:
f
1.2.2.
\begin{tikzpicture} \draw (0,0) -- (3,0) node[below] {$f$}; \end{tikzpicture}
Posici´ on del texto en un nodo
Para cambiar la posici´ on del texto en un nodo se ultiliza el comando \node[posicion del texto] at (x,y);
above above right
above left
right
left
below right
below left below 1.2.3.
Posici´ on del nodo
Con el comando anchor es posible dar una posici´on al nodo con referencia a como se ubique el texto (por defecto es centrado), es decir, se puede colocar el nodo al norte del texto (contario a lo visto en la subsecci´ on anterior; donde se le da una posici´on al texto con respecto al nodo). La sintaxis es: 15
´ 1.3. PARAMETROS OPCIONALES
\node[anchor=posicion del nodo] at (x,y);
south south east
south west
east
west
north east
north west north
1.2.4.
Dibujos utilizando nodos \begin{tikzpicture} \coordinate (A) at (0,0); \coordinate (B) at (4,0); \coordinate (C) at (6,3); \draw (A) -- (B) -- (C) -- cycle; \end{tikzpicture} f (x) = x2 \begin{tikzpicture}[scale=0.7] \draw (0,0) parabola (2,4) node[below right] {$f(x)=x^2$}; \end{tikzpicture}
1.3.
´ PARAMETROS OPCIONALES
Como era de esperarse podemos usar par´ametros opcionales para la modificaci´on de nuestros dibujos. podemos colocar estos par´ ametros opcionales a: \tikz[opciones], \begin{tikzpicture}[opciones],
1.3.1.
\draw[opciones], etc
Escalar la figura
Para indicarle a LATEX que deseamos escalar una figura a un tama˜ no deseado en referencia al tama˜ no original se usa scale=tama~ no relativo al original, donde el tama˜ no relativo es un n´ umero 1 si el tama˜ no es el original, entre 0 y 1 si el tama˜ no requerido es un poco m´as peque˜ no al de la figura original, mayor que 1 para aumentar el tama˜ no. Este n´ umero se puede interpretar como la cantidad de veces que vamos a ampliar el tama˜ no. xscale: permite escalar el tama˜ no del ancho de una figura. yscale: permite escalar el tama˜ no del alto de una figura. 16
´ nchez Sa ´ nchez Daniel Sa
1.3.2.
Rotaciones
Mediante el comando rotate=angulo de rotaci´ on, se puede rotar la figura dado su ´angulo de rotaci´on.
1.3.3.
Traslaci´ on
Gracias al comando shift={(x,y)} podemos trasladar nuestra figura al punto deseado.
1.3.4.
Relleno
El comando fill=color permite rellenar el dibujo uniformemente de un color espec´ıfico, agregando el color deseado.
1.3.5.
Background con forma de ´ esfera
Con ball color=color podemos rellenar la fugura con un fondo parecido al de una ´esfera de un color deseado.
1.3.6.
Color del trazo y color del texto
Con el comando color podemos cambiar el color de trazo de la figura deseada. El comando text=color permite darle un color deseado al texto, se puede mezclar los colres como se acostumbra en LATEX. Los siguientes colores son predefinidos
yellow
red
blue
orange
brown
black
cyan
teal
darkgray
pink
purple
lime
violet
magenta
white
olive
gray
green
lightgray
El paquete xcolor permite definir como opciones, dvipsnames, x11names, svgnames distintas paletas de colores predefinidos que traen muchos m´as colores que los de la tabla anterior. 17
´ 1.3. PARAMETROS OPCIONALES
Figura 1.3: Opcion dvipsnames
1.3.7.
Mezclar colores
En LATEX podemos mezclar colores, la forma de hacerlo es: color1!porcentaje de color 1!color2 El porcentaje del segundo color ser´ a el porcentaje restante para completar 100 %. Por ejemplo blue!75!black es una mezcla que tiene 75 % de color azul y 25 % de color negro. Podemos hacer cadenas de mezclas de colores, por ejemplo lime!90!orange!70!white esta mezcla genera un primer color que es 90 % lime y 10 % orange, luego este primer color obtenido se mezcla con blanco, con los siguientes porcentajes 70 % del color obtenido de lime y orange y 30 % de blanco. Podemos hacer cadenas de colores tan grande como se desee. Tambi´en podemos bajar la intensidad a un color con color!intensidad por ejemplo, red!50 genera un color con el 50 % de intensidad del color rojo, es apena obvio que: color=color!100.
1.3.8.
Definici´ on de colores
En LATEX podemos definir nuevos colores usando las escalas de colores como HTML, RGB, etc \definecolor{nombre}{escala}{valor en la escala} 18
´ nchez Sa ´ nchez Daniel Sa Escala
ejemplo
HTML
\definecolor{micolor1}{HTML}{BF0043}
RGB
\definecolor{micolor2}{RGB}{50,245,1}
rgb
\definecolor{micolor3}{rgb}{.5,.5,.1}
cmyk
\definecolor{micolor4}{0,.5,.4,.3,.1}
gray
\definecolor{micolor5}{gray}{.47}
Cuadro 1.1: Tabla de escala de colores y ejemplos Lo m´as ideal para generar colores personalizados es tener una paleta donde pueda escoger cualquier color y conocer su valor en alguna de las escalas, para esto puede usar recomienda el siguiente enlace Paleta de colores. Tambi´en se recomienda el sitio web latexcolor.com donde encontrar´a una lista muy extensa de colores y su repectivo comando para definirlo en LATEX.
1.3.9.
Tipo de color y ubicaci´ on
Los primeros dos tipos requieren de la librer´ıa: \usetikzlibrary{shadings} \tikz \fill[lower left=red,upper right=black] (0,0) rectangle (1,1); \tikz \fill[upper left=red,lower right=black] (0,0) rectangle (1,1); \tikz \fill[inner color=red,outer color=black] (0,0) rectangle (1,1); \tikz \fill[bottom color=red, top color=black] (0,0) rectangle (1,1); \tikz \fill[left color=red,right color=black] (0,0) rectangle (1,1);
1.3.10.
Delinear
Podemos delinear con el comando draw.
1.3.11.
L´ınea doble
Podemos crear una l´ınea doble con el comando double.
1.3.12.
Grosor y estilo de l´ıneas
Existen diferentes comandos para editar l´ıneas. line width=grosor permite darle un grosor espec´ıfico al segemento o curva. Por su parte tikz cuenta con grosores y estilos de l´ıneas predefinido. 19
´ 1.3. PARAMETROS OPCIONALES
1.3.13.
ultra thin
loosely dotted
dashdotted
very thin
dotted
densely dashdotted
thin
densely dotted
loosely dashdotted
semithick
solid
dashddototted
thick
loosely dashed
densely dashddototted
very thick
dashed
loosely dashddototted
ultra thick
densely dashed
Redondear esquinas
Mediante rounded corners, se pueden redondear las puntas de algunas figuras por ejemplo rect´angulos, veamos una figura construida en la secci´on de segmentos con sus esquinas redondeadas. \begin{tikzpicture} \draw[rounded corners] (0,0) -- (4,2) -- (4,0) -- (0,2) -- cycle; \end{tikzpicture}
1.3.14.
Nombre
Podemos ponerle nombre a una figura mediante name path=nombre este comando requiere de la importaci´on de la librer´ıa intersections y es sumamente importante para dibujar intersecciones entre dibujos. 20
´ nchez Sa ´ nchez Daniel Sa
1.3.15.
1.4.
Forma de la l´ınea arrows=o-o
arrows=|
arrows=(-)
arrows=)-(
arrows=-
arrows=|-|
arrows=||-||
arrows=()-()
arrows=>-
] (-5.5,0) -- (6.5,0) node[right] {$\mathbb{R}$}; \foreach \x in {-5,...,6} \draw (\x,2pt) -- (\x,-2pt) node[below] {\x}; \end{tikzpicture}
\begin{tikzpicture} \foreach \x in {1,...,9} \shade[ball color=lightgray!\x0!lime] (\x,0) circle (3mm); \end{tikzpicture} \begin{tikzpicture}[scale=1.75] \foreach \x in {9,...,1} \draw[fill=lightgray!30!lime!\x0] (-0.\x cm - 1cm,-0.\x cm) rectangle (0.\x cm + 1cm,0.\x cm); \end{tikzpicture}
1.7. 1.7.1.
COORDENADAS Coordenadas cartesianas
Para gr´aficar nuestros dibujos dentro del ambiente tikzpicture, podemos denotar los puntos en coordenadas cartesianas; por ejemplo \begin{tikzpicture} \draw (0,0)--(2,0)--(2,2)--(0,2)-- cycle; \draw (3,0)--(6,0)--(6,2)--(3,2)-- cycle; \end{tikzpicture}
1.7.2.
Coordenadas absolutas
El sistema de coordenadas absolutas permite hacer nuestos trazos con referencia al punto en el cual inicial el trazo, por ejemplo 25
1.7. COORDENADAS
\begin{tikzpicture} \draw (0,0) --+ (2,0) --+ (2,2) --+(0,2) -- cycle; \draw (3,0) --+ (3,0) --+ (3,2) --+(0,2) -- cycle; \end{tikzpicture}
1.7.3.
Coordenadas relativas
Con el sistema de coordenadas relativas, realizamos nuestros dibujos haciendo los trazos con respecto al punto anterior, por ejemplo \begin{tikzpicture} \draw (0,0)--++ (2,0)--++ (0,2)--++(-2,0) -- cycle; \draw (3,0)--++ (3,0)--++ (0,2)--++(-3,0) -- cycle; \end{tikzpicture}
1.7.4.
Coordenadas polares
Para hacer nuestro dibujos en tikz, tambi´en podemos hacer uso de las coordenas polares, en esta caso definimos los punto (θ : r) en vez de (x, y), θ es un ´angulo en grados y r es radio. El uso de coordenadas polares facilita la realizaci´on de una gran cantidad de trazos, por ejemplos para gr´aficar tri´angulo con un deseado ´ angulo de x grados: \tikz \draw (0:0) -- (45:3); \tikz \draw (0:0) -- (45:3) -- (45:3 |- 0,0) -- cycle; \tikz \draw (0:0) -- (45:3) |- (0,0); Se puede combinar las coordenadas definiendo los punto como se desee. \begin{tikzpicture} \draw (0:0) -- (45:3) |- (0,0); \draw (45:3 |- 0,0)--+(-0.3,0)--+(-0.3,0.3)--+(0,0.3); \end{tikzpicture}
1.7.5.
Coordenadas cartesianas en R3
26
´ nchez Sa ´ nchez Daniel Sa
1.8. 1.8.1.
´ SOFISTICADOS DIBUJOS MAS Funciones
Para gr´aficar funciones, TikZ utiliza dos comandos importantes: plot y domain los cu´ales perimiten dibujar la funci´ on en el dominio [a, b] dado. Ambos comandos reconocen las constastes e y π, para hacer uso de estas se utiliza e y pi, respectivamente. \draw[domain=a:b] plot(\x,f(\x)); \draw plot[domain=a:b] (\x,f(\x));
sqrt(\x)
pow(\x,y)
exp(\x)
ln(\x)
log10(\x)
factorial(\x)
log2(\x)
abs(\x)
mod(\x,y)
round(\x)
floor(\x)
ceil(\x)
sin(\x)
cos(\x)
tan(\x)
cot(\x)
sec(\x)
cosec(\x)
asin(\x)
acos(\x)
atan(\x)
min(\x,y)
max(\x,y)
Cuadro 1.2: Lista de funciones
Nota 1.8.1. Para gr´ aficar fuciones polinomiales con t´erminos que contengan exponente par. 2 4 Por ejemplo x o x − 2x3 + x se deben definir las funciones de la siguiente forma:
Funci´ on
Forma correcta
Forma err´onea
x2
plot(\x,\x*\x)
plot(\x,\x^2)
x4 − 2x3 + x
plot(\x,\x*\x^3-2x^3+x)
plot(\x,\x^4-2x^3+x)
\begin{tikzpicture} \draw[domain=-1:2] plot(\x,\x*\x); \end{tikzpicture}
27
´ SOFISTICADOS 1.8. DIBUJOS MAS
Podemos cambiar el color y rotular la funci´on y colocar ejes rotulados de la siguiente forma: y
f (x) = x2
x
\begin{tikzpicture} \draw[domain=-1:2,green!70!black] plot(\x,\x*\x) node[left] {$f(x)=x^2$}; % \draw[arrows=->] (0,-0.5) -- (0,4) node[above] {$y$}; % \draw[arrows=->] (-1.5,0) -- (3,0) node[right] {$x$}; \end{tikzpicture}
Nota 1.8.2. En caso de ser una funci´on trigonom´etrica se agrega un r para indicar que se est´a trajando en radianes, por ejemplo: tan(\xr).
y g(x) = 2 cos x f (x) = 2 sin x x
\begin{tikzpicture} \draw[blue,thick,arrows=->,>=latex] plot[domain=0:7] (\x,{2*sin(\x r)}) node[right] {$f(x) = 2\sin x$}; \draw[red,thick,arrows=->] plot[domain=0:6.35] (\x,{2*cos(\x r)}) node[above] {$g(x) = 2\cos x$}; % \draw[arrows=->] (-0.5,0) -- (7,0) node[right] {$x$}; \draw[arrows=->] (0,-2) -- (0,2.75) node[above] {$y$}; \end{tikzpicture}
Se utliza foreach para trazar cordenadas en los ejes y asi tener un plano cartesiano. 28
´ nchez Sa ´ nchez Daniel Sa y g(x) = 2 cos x 2 f (x) = 2 sin x
1
x 1
2
3
4
5
6
1
\begin{tikzpicture} \draw[blue,arrows=->] plot[domain=0:7] (\x,{2*sin(\x r)}) node[right] {$f(x) = 2\sin x$}; \draw[red,arrows=->] plot[domain=0:6.35] (\x,{2*cos(\x r)}) node[above] {$g(x) = 2\cos x$}; % \draw[arrows=->] (-0.5,0) -- (7,0) node[right] {$x$}; \foreach \x/\xtext in {1/1, 2/2, 3/3, 4/4, 5/5, 6/6} \draw[shift={(\x,0)}] (0pt,2pt)--(0pt,-2pt) node[below] {$\xtext$}; % \draw[arrows=->] (0,-2) -- (0,2.75) node[above] {$y$}; \foreach \y/\ytext in {-1/1, 1/1, 2/2} \draw[shift={(0,\y)}] (2pt,0pt)--(-2pt,0pt) node[left] {$\ytext$}; \end{tikzpicture} Tambi´en se puede agregar cuadriculas (subsecci´on 1.1.3) a las gr´aficas. Al momento de agregar la cuadr´ıcula debera poner primero la cuadr´ıcula y luego las funciones y dem´as complementos. y g(x) = 2 cos x 2 f (x) = 2 sin x
1
x 1
2
3
4
5
6
1
\begin{tikzpicture} \draw[very thin,color=gray] (-0.6,-2) grid (6.9,2.75); \draw[blue,arrows=->] plot[domain=0:7] (\x,{2*sin(\x r)}) node[right] {$f(x) = 2\sin x$}; \draw[red,arrows=->] plot[domain=0:6.35] (\x,{2*cos(\x r)}) 29
´ SOFISTICADOS 1.8. DIBUJOS MAS
node[above] {$g(x) = 2\cos x$}; % \draw[arrows=->] (-0.5,0) -- (7,0) node[right] {$x$}; \foreach \x/\xtext in {1/1, 2/2, 3/3, 4/4, 5/5, 6/6} \draw[shift={(\x,0)}] (0pt,2pt)--(0pt,-2pt) node[below] {$\xtext$}; % \draw[arrows=->] (0,-2) -- (0,2.75) node[above] {$y$}; \foreach \y/\ytext in {-1/1, 1/1, 2/2} \draw[shift={(0,\y)}] (2pt,0pt)--(-2pt,0pt) node[left] {$\ytext$}; \end{tikzpicture} Con el comando samples podemos escoger el n´ umero de muestras. Veamos un ejemplo de esto: En el siguiente gr´ afico la funci´ on f (x) = 2 sin x tiene 8 samples, mientras que g(x) = 2 cos x tiene 100 samples. Nota 1.8.3. El comando samples permite mejorar el trazo de nuestras funciones, m´as un teniendo en cuenta que no siempre la cantidad de samples por defecto es adecuada para la funci´ on que se gr´ afica. Otra forma de mejorar el trazo es suavizandolo con el comando smooth. y g(x) = 2 cos x f (x) = 2 sin x x
\begin{tikzpicture} \draw[blue,thick,samples=8] plot[domain=0:7] (\x,{2*sin(\x r)}) node[right] {$f(x) = 2\sin x$}; \draw[red,thick,samples=100] plot[domain=0:6.35] (\x,{2*cos(\x r)}) node[above] {$g(x) = 2\cos x$}; % \draw[arrows=->] (-0.5,0) -- (7,0) node[right] {$x$}; \draw[arrows=->] (0,-2) -- (0,2.75) node[above] {$y$}; \end{tikzpicture}
1.8.2.
Curvas param´ etricas
El comando variable permite como es de esperarse cambiar la variable sobre la cual est´ a definida la funci´ on. Por supuesto que con este comando se puede generar curvas param´etricas, por ejemplo, veamos una curva muy conocida, que parametriza a una circuferencia. 30
´ nchez Sa ´ nchez Daniel Sa y
x
1.8.3.
\begin{tikzpicture} \draw[arrows=->] (-2.5,0)--(2.5,0) node[right]{$x$}; \draw[arrows=->] (0,-2.5)--(0,2.5) node[above]{$y$}; \draw[domain=0:360,variable=\t,teal,smooth] plot ({2*cos(\t)},{2*sin(\t)}); \end{tikzpicture}
Datos estad´ısticos
Veamos como realizar gr´ aficos estad´ısticos para un conjunto de datos. Nota 1.8.4. Resulta muy u ´til guardar los datos en un nuevo comando,vea el siguiente ejemplo. \newcommand{\misdatos}{(1,2)(2,7)(3,1)(4,2)(5,3)(6,6)(7,4)(8,2)(9,4)(10,1)}
7 6 5 4 3 2 1 1
2
3
4
5
6
7
8
9
10
\begin{tikzpicture}[help lines/.style={blue!40}] \draw[help lines] (0,0) grid (10,8); \draw (0,0) -- (10,0); \draw (0,0) -- (0,8); \foreach \x in {1,2,3,4,5,6,7,8,9,10} \draw (\x,0) node[below] {\x}; \foreach \y in {1,2,3,4,5,6,7} \draw (0,\y) node[left] {\y}; \draw plot coordinates {\misdatos}; \end{tikzpicture} 31
´ SOFISTICADOS 1.8. DIBUJOS MAS
7 6 5 4 3 2 1 1
2
3
4
5
6
7
8
9
10
\begin{tikzpicture} \draw[help lines] (0,0) grid (11,8); \draw (0,0) -- (11,0); \draw (0,0) -- (0,8); \foreach \x in {1,2,3,4,5,6,7,8,9,10} \draw (\x,0) node[below] {\x}; \foreach \y in {1,2,3,4,5,6,7} \draw (0,\y) node[left] {\y}; \draw[line width=8mm, green!40!black!50] plot[ycomb] coordinates{\misdatos}; \end{tikzpicture}
32
Cap´ıtulo 2
DIBUJOS CON PGFPLOTS 2.1.
2.1.1.
DIBUJOS SOFISTICADOS
Funciones
sin (t) cos (t)
Amplitud
120 V
0
-120 V 0
π 3
2π 3
π
4π 3
t [rad] 33
5π 3
2π
2.1. DIBUJOS SOFISTICADOS
2.1.2.
Funciones en coordenadas polares
120
90 60
150
30
0
180
1
2
210
3
0
330
240
120
270
300
90 60
150
30
0
180
0.5
210
1
0
330
240
270
300
34
´ nchez Sa ´ nchez Daniel Sa
2.1.3.
Superficies
0.5 1 0 0 −0.5 −1 0
200 100
200
300
0
20 0 5
−20 −4
−2
0 0
2
4
−5 35
2.1. DIBUJOS SOFISTICADOS
z
1
0.5 2 0 −2
0
−1
0
1
x
y 2 −2
z
1
0.5 2 0 −2
0
−1
0 x
1
y 2 −2
36
´ nchez Sa ´ nchez Daniel Sa
1
z
0.5 2 0 −2
0
−1
0
y
1
2 −2
x
2.1.4.
Curvas param´ etricos
z
y 3
2 2 −3
1
−2
−1 1 −1
x 2
3
−2 z 2 −2 −1 −0.5 0.5 x2
1
1.5
2
2.5
−2
37
y 3