Skip to content Skip to navigation

Connexions

You are here: Home » Content » Gráficos en Matlab

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Gráficos en Matlab

Module by: Miguel Angel Fernandez. E-mail the author

Summary: Gráficos en Matlab

Gráficos en Matlab.

MATLAB dispone de varios directorios de funciones específicamente dedicados al tratamiento de gráficos. Gracias a ellos podremos crear gráficos bidimensionales, tridimensionales y modificarlos. Aunque aquí tan solo veremos una parte, para profundizar en el manejo de gráficos recomendamos al lector que consulte la ayuda de los directorios graphics, graph2d, graph3d y specgraph.

Gráficos bidimensionales

Dados dos vectores x e y de la misma longitud, con la orden

plot(x,y)

se abrirá la pantalla gráfica y se realizará un gráfico plano de los elementos de x contra los elementos de y. Así, si queremos dibujar la gráfica de la función y=x^5 en el intervalo [-1,1] basta con introducir la siguiente secuencia de instrucciones:

x=-1:0.0001:1; y=x.^5; plot(x,y)

Se generará entonces el gráfico

Figura 1
Figura 1 (graphics1.png)

El vector x representa la partición uniforme del intervalo [-1,1] con paso 0.0001 y el vector y representa los valores de la función x^5 (obsérvese que hemos necesitado la operación coordanada a coordenada .^ para elevar al vector x a la 5ª potencia) en los puntos de la partición. MATLAB representará en el gráfico los puntos del vector y y los unirá mediante rectas. Pruebe el lector a teclear

x=-1:0.5:1; y=x.^5; plot(x,y)

Si pulsamos una tecla cualquiera saldremos de la pantalla gráfica, aunque ésta no se cerrará y si escribimos

shg o figure(gcf)

volveremos a dicha pantalla.

De igual modo se pueden hacer gráficos de curvas definidas paramétricamente. Pruebe el lector a escribir las instrucciones

t=0:.001:2*pi; x=cos(t); y=sin(t); plot(x,y)

grid

Figura 2
Figura 2 (graphics2.png)

y podrá observar las siguientes gráficas

En la segunda gráfica se aprecia como la instrucción

grid

ha dibujado un cuadriculado sobre la gráfica que teníamos.

Ahora bien, la gráfica parece más la de una elipse que la de un círculo. Esto se debe a la escala que MATLAB establece en sus gráficas. Si queremos asegurar que la escala de ambos ejes sea la misma escibimos:

axis square

y volviendo a la pantalla gráfica veremos como ésta ha cambiado:

Figura 3
Figura 3 (graphics3.png)

Más en general, para modificar la escala empleada en los ejes, si tenemos un vector

c=[x min ,x max ,y min ,y max ]

entonces con la instrucción

axis(c)

se establecerá el escalado con los límites que hemos indicado mediante el vector c. Pruebe el lector a darle un valor concreto al vector c (xmax, ymin, etc...). Si escribimos ahora

axis

volveremos al autoescalado.

Para mejorar la presentación de nuestra gráfica podemos usar los siguientes comandos (ver sus ayudas para más información y helpgraphics para conocer más funciones):

legend(‘texto_leyenda’) leyenda del gráfico

title('nombre_título') título del gráfico

xlabel('texto') comentario en el eje x

ylabel('texto') comentario en el eje y

gtext('texto') texto posicionado interactivamente

text(x,y,'texto') texto posicionado en las coordenadas (x,y)

Así, por ejemplo, con

gtext('Me gusta mi gráfica')

se posicionará una cruz que podremos mover sobre el gráfico con las flechas o el ratón. Cuando pulsemos cualquier tecla el texto se posicionará donde esté la cruz.

Se pueden modificar los tipos de línea, de punto y los colores que MATLAB utiliza por defecto en las gráficas. Veamos algunas variaciones:

Tipos de línea: sólido (-), a trazos (--), puntos (:), punto y trazo(-.)

Tipos de puntos: punto (.), diamantes (d), estrella (*), círculo (o), equis (x), ...

Colores: amarillo (y), verde ( g), cyan (c), azul (b), negro (k), rojo (r), ...

Estas modificaciones se introducen entre comillas después de los vectores a dibujar y todas las modificaciones se escriben juntas. Pruebe el lector a escribir las siguientes instrucciones:

x=0:.01:2; y=sin(x.^2); plot(x,y,'d')

x=0:.01:2; y=sin(x.^2); plot(x,y,'rv:')

Los dibujos múltiples (varias funciones representadas en una única gráfica) se pueden obtener de tres formas. La primera se ilustra con el siguiente ejemplo:

x=0:.1:2*pi;y1=sin(x);y2=sin(2*x); plot(x,y1,'b-.',x,y2,'k')

Figura 4
Figura 4 (graphics4.png)

Una segunda forma es formando una matriz Y conteniendo los valores funcionales como columnas. Así, con la siguiente secuencia de instrucciones veremos las gráficas de las funciones y=cos(x), y=1/2:

x=0:.01:2*pi;Y=[cos(x)',(ones(1,size(x,2))/2)'];plot(x,Y)

Por último, también se puede hacer con el comando

hold o hold on

Esta instrucción hace que un nuevo gráfico se añada al que había en la pantalla gráfica en lugar de reemplazarlo. Si escribimos nuevamente hold o hold off entonces cada nuevo gráfico reemplazará al anterior (este es el modo por defecto). Pruebe el lector a escribir las siguientes instrucciones:

x=-pi:.05:pi;y=sin(x);plot(x,y)

Figura 5
Figura 5 (graphics5.wmf)

hold

x=-pi:.05:pi;y=cos(x);plot(x,y,'ro')

text(-2.5,0.6,'y=cos(x)')

text(2.7,0.6,'y=sin(x)')

Figura 6
Figura 6 (graphics6.png)

En MATLAB es posible visualizar hasta cuatro gráficos en la misma ventana. Por ejemplo:

Figura 7
Figura 7 (graphics7.png)

Esta pantalla se puede producir con la siguiente secuencia de instrucciones:

subplot(2,2,1)

x=-pi:.01:pi; y=sin(x); plot(x,y)

title('Figura nº1: Gráfica de sen(x)')

subplot(2,2,2)

x=-pi:.01:pi; y=sin(2*x); plot(x,y)

title('Figura nº2: Gráfica de sen(2*x)')

subplot(2,2,3)

x=-pi:.01:pi; y=sin(4*x); plot(x,y)

title('Figura nº3: Gráfica de sen(4*x)')

subplot(2,2,4)

x=-pi:.01:pi; y=sin(8*x); plot(x,y)

title('Figura nº4: Gráfica de sen(8*x)')

Con la instrucción

subplot(m,n,h)

la pantalla gráfica se subdivide en una matriz de m por n pequeñas pantallas y considera la h-ésima pantalla (de las m x n que hay) como la actual. Así, con la orden

subplot(2,2,1)

le indicábamos que crease una matriz de 2 por 2 "subpantallas" y que deseábamos trabajar en la primera de las cuatro. A continuación dibujamos una gráfica y le pusimos título y escribimos

subplot(2,2,2)

para comenzar a trabajar en la segunda de las cuatro subpantallas.

Observe el lector en el ejemplo que primero se dibuja la gráfica y después se añaden textos, títulos, ejes, etc...

Imprimir gráficos.

La forma más sencilla de obtener una copia de la pantalla gráfica es usar la instrucción

print

Basta con este comando para que la impresora produzca una copia en alta resolución de la pantalla gráfica actual. Consúltese la ayuda help print para conocer los parámetros que pueden usarse.

Gráficos en el portapapeles.

Con MATLAB podemos copiar el contenido de la ventana gráfica en el portapapeles y después pegar dicho contenido en cualquier programa que lo permita (así hemos hecho los gráficos de este manual). Para copiar su contenido en el portapapeles seleccionaremos copy figure del menú Edit de la ventana gráfica y en adelante podremos trabajar con el contenido de la ventana como lo haríamos con cualquier objeto del portapapeles, pegándolo donde sea necesario.

Gráficos tridimensionales.

Veremos 3 funciones que nos permiten en MATLAB dibujar gráficos en 3 dimensiones: mesh, plot3 y surf.

Los gráficos de malla de superficies tridimensionales se hacen con la función

mesh(z)

donde z es una matriz. La superficie de malla está definida por las coordenadas z de los puntos sobre un cuadriculado rectangular en el plano XY. Inténtelo con

t=[0:.01:pi;pi:.01:2*pi];mesh(sin(t))

Junto con mesh se puede hacer usar la función meshgrid. Con ella se define la cuadrícula sobre la que dibujaremos la gráfica de la función.Veamos, por ejemplo, la gráfica de la función “silla de montar” en el intervalo [-pi,pi]x[-pi,pi]

Figura 8
Figura 8 (graphics8.png)

Esta gráfica se ha conseguido con las instrucciones

[x y]=meshgrid(-pi:.1:pi, -pi:.1:pi);

z=x.^2-y.^2;

mesh(x,y,z)

Con la función surf conseguiremos dibujar superficies tridimensionales en color. Así, por ejemplo, podemos ver la esfera tridimensional con:

[X,Y,Z]=sphere(40);

surf(X,Y,Z);

axis square

Figura 9
Figura 9 (graphics9.png)

Por último, la función plot3d es la versión tridimensional de plot. Veamos un ejemplo de cómo dibujar una espiral:

t=0:.1:6*pi;plot3(sin(t),cos(t),t)

Figura 10
Figura 10 (graphics10.png)

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks