Mauricio Gende * mgende@fcaglp.unlp.edu.ar 17 de junio de 2011 Índice 1. Introducción 1 2. La función PLOT 2 3. Formatos 3 3.1. Tipos de líneas y símbolos.................... 3 3.2. Colores............................... 3 4. Otros Cambios 4 5. Manteniendo, borrando y grabando la figura 5 6. Gráficos multifiguras 6 7. Resolución gráfica de la tarea 7 1. Introducción Este breve documento pretende mostrar como graficar con Octave. Lo primero que tenemos que decir es que Octave usa GNUplot para graficar, * Facultad de Ciencias Astronómicas y Geofísicas, Paseo del Bosque s/n, B1900FWA, Argentina 1
por lo tanto, los gráficos de uno y otro son muy similares. Lo segundo es que la razón por la que no utilizamos GNUplot en forma directa es solo porque hacerlo en Octave implica integrar mejor nuestros códigos en Octave a una salida gráfica. Nada tiene de malo entonces guardar en un archivo de texto la salida numérica de un programa en Octave y graficarlo en GNUplot solo que a nuestro criterio parece más engorroso. De todas las opciones disponibles, por ahora, sólo veremos como hacer gráficos bidimensionales x vs. y. 2. La función PLOT La función plot despliega en pantalla una imagen de un gráfico x vs. y. La forma más sencilla de ejecutarla es: plot(y) De esta manera se despliega un gráfico que toma al índice de y como valor para las abscisas y a los valores de y como las ordenadas. Para elegir el valor de las abscisas podemos escribir plot(x,y) Entonces: 1. Si x e y son vectores, se hará el gráfico más intuitivo x vs. y. Entendiendo que siempre debe haber tantos valores de x como de x. 2. Si x e y son matrices de igual dimensiones (n, m), se harán los m gráficos que relacionan los m diferentes vectores columnas (n,1) para x e y. 3. Si x es un vector e y una matriz (n,m), se harán los m gráficos que relacionan a la abscisa x con las columnas de y. Es importante recordar que siempre debe haber coherencia con las dimensiones de las variables que se desea graficar. Tareas: 2
1. Graficar la función seno entre 0 y 2π. Para eso arme una tabla θ versus seno(θ) equiespaciada cada 0,01 radianes. 2. Graficar las funciones Acoseno entre 0 y 2π cuando A toma los valores 1, 2, 3, 6 y 12. Arme la matriz y que contenga a las funciones equiespaciada cada 0,01 radianes. 3. Formatos Si no queremos aceptar las opciones de graficación que Octave propone por defecto, podemos usar plot(x,y,formato) 3.1. Tipos de líneas y símbolos - elige como estilo la línea (line), esta es la elección por omisión.. elige como estilo el punto (dots). @ elige como estilo una línea discontinua de caracteres (points). 1. @* elige como estilo una sucesión de * 2. @+ elige como estilo una sucesión de + 3. @x elige como estilo una sucesión de x 4.... 3.2. Colores Si en formato ponemos algunos carácteres particulares, éllos son interpretadas como los colores de los símbolos o las líneas, de la siguiente forma: k (black) es negro r (red) es rojo g (green) es verde 3
b (blue) es azul m (magenta) es magenta c (cyan) es cian w (white) es blanco Tarea: 3. Graficar una función matemática no trigonométrica en color azúl, con línea punteadas y símbolos +. Elija el rango de las abscisas más conveniente. 4. Otros Cambios La función axis es útil para indicar los límites del gráfico y se usa así: axis([x_min x_max y_min y_max]) A su vez los ejes pueden tener etiquetas para indicar qué se grafica en ellos de la siguiente manera: xlabel("texto_1"); ylabel("texto_2"); Si queremos asociar la variable que se grafica con un texto utilizamos la sentencia legend: legend ("texto1","texto2",...) Dicha sentencia es útil para diferentes tipos de gráficos (Gráficos de líneas, gráficos de barras, etc.) y para cada elemento dibujado, legend utiliza un ejemplo de el tipo de línea, el símbolo y el color utilizado junto con un texto que hace referencia a la variable graficada. Otra forma de utilizar esta sentencia sería: legend ("texto1","texto2",...,"location", POS) en la cual podemos especificar en forma opcional la posición exacta en donde queremos que sobreimponga la legenda. Los valores posibles para POS son: 4
north south east west northeast northwest southeast southwest outside center top center bottom right center left center right top (default) left top right bottom left bottom Y si queremos poner un título al grafico utilizamos title title ("texto_del_titulo"); Tarea: 4. Graficar A.seno y B.coseno entre 0 y π. El primero con el símbolo o en verde y el segundo con línea llena en color Cian. Poner una leyenda a cada uno indicando que función trigonométrica es. Escribir las etiquetas en los ejes indicando qué se grafica y en qué unidades. Elija A y B en forma arbitraria, haga que en el eje y se muestre al menos un 25 % de espacio en blanco por arriba y por debajo de los valores máximos y mínimos de las funciones. Elija y coloque un título. Ayuda: Tenga cuidado de graficar ambas funciones a la vez para que no desparezca un gráfico al realizar el otro. 5. Manteniendo, borrando y grabando la figura Si vamos a poner más de un gráfico en una figura debemos avisar que la misma se retenga porque sino los gráficos saldrán en forma independiente. Para esto utilizamos: hold on Esta función trabaja como una llave de luz (on/off) y sólo es necesario utilizarla cuando se desea cambiar de estado. Es decir una vez encendida solo debe apagarse cuando queremos que los gráficos salgan en otra figura. Si queremos despejar la pantalla de gráficos utilizamos clf, que puede ser entendida como clear figure o sea, borre las figuras. 5
Figura 1: Ejemplo de uso de subplot 6. Gráficos multifiguras Si queremos más de un gráfico por figura utilizamos subplot de la siguiente forma: subplot (n,m,i) donde n y m son los índices de una matriz que indica la forma general de la figura, e i es el índice que indica donde poner el gráfico en forma zigzagueante de izquierda a derecha y hacia abajo. Por ejemplo x=1:100; y1=sin(x); y2=cos(x); subplot(2,1,1) plot(x,y1) subplot(2,1,2) plot(x,y2) Da como resultado la Figura 1. 6
7. Resolución gráfica de la tarea No avance más en la lectura del texto si no intentó realizar los ejemplos. Esta página fue dejada en blanco adrede. 7
Tarea 1 Tarea 2 Tarea 3 Tarea 4 8