Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
GRAFICOS 2-D
FUNCIÓN plot
La función plot(), en sus diversas variantes, no hace otra cosa que dibujar vectores.
Un ejemplo muy sencillo de esta función, en el que se le pasa un único vector como argumento, es el
siguiente:
» x=[1 3 2 4 5 3]
x=
132453
» plot(x)
4.5
3.5
2.5
1.5
1
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
El resultado de este comando es que se abre una ventana mostrando el gráfico. Por defecto, los
distintos puntos del gráfico se unen con una línea continua.
Cuando a la función plot() se le pasa un único vector –real– como argumento, dibuja en ordenadas el
valor de los n elementos del vector frente a los índices 1, 2, ... n del mismo en abscisas.
Una segunda forma de utilizar la función plot() es con dos vectores como argumentos.
En este caso los elementos del segundo vector se representan en ordenadas frente a los valores del
primero, que se representan en abscisas.
Veamos cómo se puede representar la función seno entre 0 y 10. Para empezar creemos una
variable x que vaya de cero a 10:
» x=0:0.1:10;
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7 8 9 10
Véase por ejemplo cómo se puede dibujar un cuadrilátero de esta forma (obsérvese que para dibujar
un polígono cerrado el último punto debe coincidir con el primero):
» x=[1 6 5 2 1];
» y=[1 0 4 3 1];
» plot(x,y)
3.5
2.5
1.5
0.5
0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
GRAFICAS MULTIPLES.-
plot (x,y,w,z)
donde las variables x,y,w,z son vectores. Al ejecutarse este comando , se traza la curva
correspondiente a x versus y, y luego se traza en la misma gráfica la curva correspondiente a w
versus z.
La función plot() permite también dibujar múltiples curvas introduciendo varias parejas
de vectores como argumentos. En este caso, cada uno de los segundos vectores se dibuja en
ordenadas como función de los valores del primer vector de la pareja, que se representan en
abscisas.
Obsérvese bien cómo se dibujan el seno y el coseno en el siguiente ejemplo:
» x=0:pi/25:6*pi;
» y=sin(x);
» z=cos(x);
» plot(x,y,x,z)
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 2 4 6 8 10 12 14 16 18 20
El comando plot puede utilizarse también con matrices como argumentos. Se puede obtener una
excelente y breve descripción de la función plot() con el comando help plot.
Se ha visto cómo la tarea fundamental de la función plot() era dibujar los valores de un vector en
ordenadas, frente a los valores de otro vector en abscisas.
En el caso general esto exige que se pasen como argumentos un par de vectores. En realidad, el
conjunto básico de argumentos de esta función es una tripleta formada por dos vectores y una
cadena de 1, 2 ó 3 caracteres que indica el color y el tipo de línea o de marker.
Podemos seleccionar los tipos de línea, asimismo, podemos escoger distintos caracteres para indicar
los puntos.
En la tabla siguiente se pueden observar las distintas posibilidades.
1 1
0.5 0.5
0 0
-0.5 -0.5
-1 -1
0 5 10 15 20 0 5 10 15 20
1 0.5
0.5
0 0
-0.5
-1 -0.5
0 5 10 15 20 0 5 10 15 20
CONTROL DE LOS EJES.- También en este punto MATLAB tiene sus opciones por defecto, que en
algunas ocasiones puede interesar cambiar. El comando básico es el comando axis. Por defecto,
MATLAB ajusta la escala de cada uno de los ejes de modo que varíe entre el mínimo y el máximo
valor de los vectores a representar. Este es el llamado modo "auto", o modo automático. Para definir
de modo explícito los valores máximo y mínimo según cada eje, se utiliza el comando:
axis([xmin, xmax, ymin, ymax])
mientras que :
axis(’auto’)
devuelve el escalado de los ejes al valor por defecto o automático.
bar(x,y) Gráfico de barras vertical, donde “y” representa las frecuencias, “x” define el intervalo
en el eje x.
stem(x,y) Gráfico de bastones verticales, donde “y” representa las frecuencias, “x” define el
intervalo en el eje x.
loglog(x,y) Realiza una gráfica cartesiana con escala logarítmica en ambos ejes.
semilogx(x,y) idem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas.
semilogy(x,y) idem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas.
fill(x,y,c) Dibuja una región poligonal cuyos vértices son los elementos de los vectores columna
x,y; el parámetro “c” contiene el color a graficar.
Existen además otras funciones orientadas a añadir títulos al gráfico, a cada uno de los ejes, a dibujar
una cuadrícula auxiliar, a introducir texto, etc. Estas funciones son las siguientes:
xlabel('texto') añade una etiqueta al eje de abscisas. Con xlabel off desaparece
ylabel('texto') añade una etiqueta al eje de ordenadas. Con ylabel off desaparece
grid activa la inclusión de una cuadrícula en el dibujo. Con grid off desaparece la cuadrícula
Para practicar un poco con todo lo que se acaba de explicar, ejecútense las siguientes instrucciones
de MATLAB, observando con cuidado los efectos de cada una de ellas en la ventana activa. El
comando figure(gcf) (get current figure) permite hacer visible la ventana de gráficos desde la ventana
de comandos.
» x=[-4*pi:pi/20:4*pi];
» plot(x,sin(x),'r',x,cos(x),'g')
» title('Función seno(x) -en rojo- y función coseno(x) -en verde-')
» xlabel('ángulo en radianes'), figure(gcf)
» ylabel('valor de la función trigonométrica'), figure(gcf)
» axis([-12,12,-1.5,1.5]), figure(gcf)
» help axis
1
valor de la función trigonométrica
0.5
-0.5
-1
-1.5
-10 -5 0 5 10
ángulo en radianes
La evaluación de una función de una variable, como f(x), implica calcular un vector de valores x, y
luego calcular un vector correspondiente de valores de la función como se ilustra con las siguientes
instrucciones:
x = 0 : 0.1 : 5;
f = 2*x.^2 – 3*x + 2;
Para evaluar una función f(x,y) de dos variables, primero definimos una retícula bidimensional en el
plano xy. A continuación evaluamos la función en los puntos de la retícula para determinar puntos en
la superficie tridimensional.
Definimos una retícula bidimensional en el plano xy en MATLAB usando dos matrices. Una matriz
contiene las coordenadas x de todos los puntos de la retícula, y la otra contiene las coordenadas y de
todos los puntos de la retícula.
La función meshgrid genera las dos matrices que definen la retícula subyacente para una función
bidimensional.
[x_grid, y_grid] = meshgrid (x,y) Genera dos matrices de tamaño n x m, con base en
los valores de los vectores x y y que contiene m-
valores y n-valores, respectivamente.
La matriz x_grid contiene los valores de x repetidos
en cada fila, y la matriz y_grid contiene los valores de
y repetidos en cada columna.
GRAFICAS 3-D
Hay varias formas de graficar una superficie tridimensional con Matlab. Presentaremos dos tipos de
gráficas: la gráfica de malla y la gráfica de superficie. Una gráfica de malla tiene una cuadrícula
abierta, mientras que una gráfica de superficie tiene una cuadrícula sombreada.
Los gráficos de superficie permiten obtener representaciones densas de figuras tridimensionales y en
especial de funciones de dos variables. El primer paso para representar una función de dos variables
z=f(x,y) mediante su gráfico de superficie es utilizar el comando meshgrid, que básicamente define la
matriz de puntos (X,Y) sobre los cuales se evalúa la función de dos variables para hacer su
representación gráfica. El segundo paso es utilizar los comandos disponibles al efecto.
>> x = -2 : 0.1 : 2;
>> y = -1: 0.1 : 2;
>> [x_grid, y_grid] = meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> mesh(x_grid, y_grid,z)
0.8
0.6
0.4
0.2
0
2
2
1
1
0 0
-1
-1 -2
>> x = -2 : 0.1 : 2;
>> y = -1: 0.1 : 2;
>> [x_grid, y_grid] = meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> surf(x_grid, y_grid,z)
0.8
0.6
0.4
0.2
0
2
2
1
1
0 0
-1
-1 -2
Un mapa de contorno es en esencia un mapa de elevación que contiene un grupo de líneas que
conectan elevaciones iguales. Un mapa de contorno se genera a partir de datos de elevación
tridimensionales, y puede ser generado por Matlab usando matrices que definen el intervalo de
coordenadas x y y y los datos de elevación (coordenada z).
1.5
0.5
-0.5
-1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2