2. MATLAB provee una amplia variedad de técnicas para mostrar datos gráficamente.
Las herramientas interactivas permiten manipular gráficos para alcanzar resultados
para alcanzar resultados que revelen más información acerca de los datos. También
puede imprimir los gráficos para representaciones o exportaciones a formatos
estándar de gráficos para su representación en Navegadores Web (*.jpeg *.pdf ,etc)
u otros medios
El entorno de MATLAB ofrece una variedad de funciones de trazado de datos y
un conjunto de herramientas gráficas para crear y modificar las pantallas
gráficas
GRÁFICOS EN MATLAB
3. Anatomía de las gráficas en MATLAB
El entorno MATLAB ofrece una variedad de
funciones para gráfica de datos además de
herramientas de GUI para crear y modificar la
visualización de las gráficas.
Una figura es una ventana MATLAB que contiene
la visualización de una gráfica (usualmente trazado
de datos) y componentes UI.
Un trazado (plot) es cualquier visualización
gráfica, a partir de un conjunto de datos que se
pueda crear dentro de una ventana figura.
Una gráfica (graph) es el conjunto de uno o más
trazas en ejes bidimensionales o tridimensionales.
Ventana figura (figure)
Eje (axes)
Traza de curvas (plots)
>> x=0:0.2:20;
>> y=sin(x)./sqrt(x+1);
>> y(2,:)=sin(x/2)./sqrt(x+1);
>> y(3,:)=sin(x/3)./sqrt(x+1);
>> plot(x,y)
4. Anatomía de las gráficas en MATLAB
Preparar los datos a graficar.
oLos datos deben estar en el workspace.
Especificar la ventana figura en la que se desea hacer la gráfica.
o Uso del comando figure.
Hace la subdivisión de la gráfica en sub-gráficas (ejes) si es necesario.
Especificar la sub-gráfica (eje) en la que se desea hacer la gráfica.
o Usando el comando subplot.
Efectuar el trazado de la gráfica.
o Usando las funciones trazadoras de gráfica bidimensional/tridimensional.
Agregar detalles a la gráfica.
o Leyenda, enrejado, título, etiquetas, etc.
Estableciendo valores a las propiedades de los objetos que componen la gráfica.
o Creando manipuladores a los objetos de la gráfica.
o Obteniendo/establecimiento propiedades mediante los comandos get y set.
5. MATLAB
Barra de
herramientas
Trazado de líneas que
representan datos
Ejes con los que se
trazan los datos
Figura acoplable
al escritorio
GRÁFICOS EN MATLAB
ANATOMÍA DE MATLAB
Las funciones y herramientas de graficación de MATLAB dirigen sus salidas a
ventanas especiales denominadas ventana figura (Figure)
Ventana Figura de
6. Habilitación del modo
edición de trazado
Acercamiento o
alejamiento
Pan Rotación en
3D
Insertar barra
de colores
Insertar leyenda
Ocultar u mostrar las
herramientas de trazado
Cursor de
datos
Pincel de datos
Enlace de
datos
GRÁFICOS EN MATLAB
La barra de herramientas de la ventana figura permite tener acceso a las
características más comúnmente usadas en la edición de gráficos
8. FUNCION DESCRIPCIÓN
plot Graficadatos2Dconescalaslinealesparasusejes
Plot3 Graficadatos3Dconescalaslinealessusejes
loglog Graficaconescalalogaritmicaparaambosejes
semilogx Gráficaconunaescalalogaritmicaparaelejexyescalalinealparaelejey
semilogy Gráficaconunaescalalogaritmicaparaelejeyyescalalinealparaelejex
plotyy Graficacon2ejesy(izquierdayderecha)
hold Mantienevariosgráficosalavez
grid Dibujaunarejilla
Funciones básicas para el trazado de una gráfica
GRÁFICOS EN MATLAB
9. GRÁFICOS EN MATLAB
GRÁFICOS BIDIMENSIONALES
Se deben seguir los siguientes pasos :
o Preparar los datos por graficar (coordenadas de los puntos).
x=0:pi/4:2*pi;
y=sin(x);
o Con estos vectores se efectúa la gráfica haciendo uso de las funciones
MATLAB para el trazado bidimensional
plot(x,y);
12. color_style_marker es
una cadena que contiene de uno
cuatro
caracteres (entrecomillas) construi
do a partir de un color, un estilo
de línea, y un tipo de marcador.
GRÁFICOS EN MATLAB
Especificación de estilos de línea y colores
Es posible especificar el color, la línea de estilos, y los marcadores (por
ejemplo, los signos más o círculos) al trazar sus datos utilizando el comando plot:
plot(x,y,'color_style_marker')
13. 0 1 2 3 4 5 6 7
-1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
>> plot(x1,sin(x1),'ks')
GRÁFICOS EN MATLAB
Trazado de líneas y marcadores
Si se especifica un tipo de marcador, pero no un estilo de línea, sólo se dibuja el marcador
plot(x,y,'ks')
Traza cuadrados de color negro en cada punto de los datos, pero no conecta el
marcador con una línea
1
>> x1 = 0:pi/100:2*pi;
14. 0 1 2 3 4 5 6 7
-1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
>> x1 = 0:pi/100:2*pi;
>> plot(x1,sin(x1),'r:+')
GRÁFICOS EN MATLAB
Trazado de líneas y marcadores
plot(x,y,'r:+')
Traza una línea roja de puntos y ubica marcadores de signo + en cada punto de los
1
15. 0 1 2 3 4 5 6 7
-1
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
GRÁFICOS EN MATLAB
Ubicación de marcadores en todos los puntos de los datos x
Es posible que desee utilizar menos puntos de datos para trazar los marcadores de
las que usa para trazar las líneas. Este ejemplo traza el dato dos veces usando un
número diferente de puntos para la línea punteada y los marcadores trazados
1
0.8
x1 = 0:pi/100:2*pi;
x2 = 0:pi/10:2*pi;
plot(x1,sin(x1),'r:',x2,sin(x2),'r+')
16. -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-1
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
t = 0:pi/10:2*pi;
plot(exp(i*t),'-o‘)
GRÁFICOS EN MATLAB
GRÁFICO IMAGINARIO Y DATO COMPLEJO
Cuando los argumentos para plotear son complejos. Z es un vetor o matriz complejo ,
y es equivalente a:
plot(real(Z),imag(Z))
1
0.8
0.6
17. -3 -2 -1 0 1 2 3 4
-3
-4
3
2
1
0
-1
-2
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)
GRÁFICOS EN MATLAB
Trazado de líneas y marcadores
clear all; clc;
18. GRÁFICOS EN MATLAB
Creación de un trazo
T=3;
f=1/T;
t=0:T/1000:2*pi;
y=sin(2*pi*f*t);
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x=0:2
Amplitud
Trazado de la función seno
Ahora agregamos el título y etiquetas en x e y
plot(t,y)
xlabel('x=0:2pi');
ylabel('Amplitud');
title('Trazado de la función seno','fontsize',12)
El carácter pi crear el símbolo π.
19. GRÁFICOS EN MATLAB
Creación del texto en puntos dados usando el comando text
xlabel('0 leq itt leq 2pi');
text(1,sin(2*pi*f*1),'leftarrow Primer punto');
text(2,sin(2*pi*f*2),'leftarrow Segundo punto');
text(4.5,sin(2*pi*f*4.5),'leftarrow it sen(omegat)');
grid on
El comando grid on
activa el grillado
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 t 2
Amplitud
Trazado de la función seno
Primer punto
Segundo punto
sen(t)
21. Tabla de secuencia de caracter TEX
bf — Fuente Bold
it — Fuente Italic
sl — Fuente oblicua
rm — Fuente normal
fontname{fontname} — Especifica el nombre del tipo de fuente a usar
fontsize{fontsize} — Especifica el tamaño de la fuente a usar.
color(colorSpec) — Especifica el color de los caracteres posteriores. Usa los cocho colres
básicos (red, green, yellow, magenta, blue, black, white) y además los
colores de simulink (gray, darkGreen, orange, and lightBlue).
color[rgb]{r g b} — Especifica un triplete RGB con valores entre 0 y 1 como una celda array
Se puede especificar modificadores de flujo que controlan el tipo de fuente y color.
Los primeros cuatro modificadores son mutuamente excluyentes. Sin embargo, puede
utilizar FontName en combinación con uno de los otros modificadores:
GRÁFICOS EN MATLAB
22. plot handles
Cada comando cuya salida se expresa en una figura puede también devolver un
argumento llamado plot handle .
X=linspace(-pi,pi,10)
h=plot(x,cos(2*x))
Entonces h es una curva y también una variable que contiene toda la información
correspondiente a la misma y dentro del léxico de matlab suele recibir el nombre
de handle. Con la función get podemos obtener toda la información del handle y
mediante la función set podemos cambiar sus propiedades según nuestras
necesidades. No sólo las curvas devuelven un handle, todos los objetos gráficos,
incluso los ejes o la propia figura genera un handle.
get(h) : Función que obtiene las características de un handle gráfico, ya sea una
curva, los ejes de la figura o la misma figura
set(h,attr,val) : Función que modifica las características de un handle gráfico,
ya sea una curva, ejes de la figura o la misma figura
GRÁFICOS EN MATLAB
24. 1 1.5 2 2.5 3 3.5 4 4.5 5
1
3
2.8
2.6
2.4
2.2
2
1.8
1.6
1.4
1.2
Pirámide
p=plot([1,2,3,2,1]);
set(p,'linewidth',2);
set(p,'marker','o');
set(p,'markersize',12);
set(p,'markerfacecolor','y');
set(p,'markeredgecolor','r');
t=title('Pirámide');
set(t,'fontsize',14);
set(t,'color','g');
GRÁFICOS EN MATLAB
Plot handles
h : El handle.
attr : Un atributo válido del handle como cadena de caracteres.
val : El nuevo valor del atributo
gca() : No necesita ningún argumento. Devuelve el handle de los ejes de la figura.
gcf() : No necesita ningún argumento. Devuelve el handle de la figura figura activa.
25. ValordelaFunction
-pi -pi/2 0 pi/2 pi
-1
Radianes
GRÁFICOS EN MATLAB
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
title('Función Seno');
xlabel('Radianes');
ylabel('Valor de la Function');
Función Seno
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
26. sen()
-pi -pi/2 0 pi/2 pi
-1
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-
Theta aparece como un símbolo griego y
se nota el punto -pi/4 y seno(-pi/4)
Trazado del sen()
sin(-4)
GRÁFICOS EN MATLAB
x = -pi:.1:pi;
y = sin(x);
p = plot(x,y);
set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
xlabel('-pi leq Theta leq pi')
ylabel('sen(Theta)')
title('Trazado del sen(Theta)')
text(-pi/4,sin(-pi/4),'leftarrow sin(-pidiv4)',...
'HorizontalAlignment','left')
set(p,'Color','red','LineWidth',2)
Ejercicio: Colocar más puntos visibles
Es importante saber algunos
comandos en LateX
Cambia el color y el tamaño
27. x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')
El comando legend
escribe la leyenda de la
figura
GRÁFICOS EN MATLAB
Trazado de varios conjuntos de datos en un gráfico
Multiples pares x-y pueden crear múltiples gráficos con una sola lamada a la función plot
28. plotyy(t,y,t,y1,'plot','stem');
GRÁFICOS EN MATLAB
plotyy : Genera dos ejes vertiicales para dos funvciones distintas
t=0:pi/20:2*pi;
y=exp(sin(t));
y1=exp(cos(t));
0 1 2 3 4 5 6
0
3
2.5
2
1.5
1
0.5
0
7
3
2.5
2
1.5
1
0.5
plotyy(X1,Y1,X2,Y2,'
function1','function
2')
29. GRÁFICOS EN MATLAB
Ejemplos
El cicloide
t E 0 – 2*pi
X=a(t-sen(t))
Y= a(1-cos(t))
El cardioide
t E 0 – 2*pi
X=cos(t)(1+cos(t))
Y= sen(t)(1+cos(t))
El asteroide
t E 0 – 2*pi
X=acos(t)^3
Y= asen(t)^3
0 1 2 3 4 5 6 7
0
0.5
1
1.5
2
-0.5 0 0.5 1 1.5 2
-1.5
-1
-0.5
0
0.5
1
1.5
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
30. loglog
x = logspace(-1,2);
loglog(x,exp(x),'-s')
grid on
0
10
1
10
2
10
0
10 -1
10
40
10
30
10
20
10
10
10
2
10
4
10
6
10
8
10
10
10
0 0
10
3
2.5
2
1.5
1
0.5
10
x 10
x = logspace(0,10);
semilogx(x,3*x,'-s')
grid on
GRÁFICOS EN MATLAB
50
10
32. axis auto axis squareaxis equal
axis normal
GRÁFICOS EN MATLAB
axis
El comando axis proporciona una serie de opciones para el configuración de la escala,
la orientación y razón del aspecto de los gráficos. También puede configurar estas
opciones de forma interactiva
El comando axis define los límites de los ejes (mínimos y máximos)
axis([xmin xmax ymin ymax])
O para gráficos de tres dimensiones
axis([xmin xmax ymin ymax zmin zmax])
Permite una selección automático de límites
33. 120
240
60
300
150
210
30
330
180 0
Gráfico del seno polar
90
0.5
0.4
0.3
0.2
0.1
270
GRÁFICOS EN MATLAB
polar
figure
tetha = 0:.01:2*pi;
polar(tetha,sin(2*tetha).*cos(2*tetha),'--r')
title('Gráfico del seno polar')
Graficar:
34. Para crear una nueva ventana figura: figure(n)
Donde n es el número en el título de la ventana figura
GRÁFICOS EN MATLAB
Inclusión de trazos en una gráfica existente
hold : Cambia el comportamiento de la ventana activa, hold on hace que cada dato se
represente sobre el anterior, hold off borra las ventanas antes de pintar en ellas.
Ventana figura
Las funciones gráficas abren automáticamente figuras si no hay ventanas figuras en
la pantalla. Si existe una ventana figura es para, se utiliza para salida de gráficos. Si
hay múltiples ventanas figura abierta aquella que es designada la “figura actual” (la
ultima figura usada o clickeada dentro) es usada.
35. m
filas
n filas
subplot(m,n,2)
…
…
…
1
n+1
.
.
(m-1)n+1
subplot(m,n,1)
2
n+2
.
.
(m-1)n+2
subplot(m,n,n)
n
2n
.
.
mn
GRÁFICOS EN MATLAB
Mostrando múltiples trazos en una figura
Se pueden mostrar múltiples trazados en una misma ventana figura e imprimirlos en
el mismo pedazo de papel con la función subplot
Subplot(m,n,i) particiona la ventana figura en una matriz de mxn subtrazas y
selecciona la subtraza i-ésima para el actual trazado . Los trazados son numerados
a lo largo de la fila superior de la ventana figura
36. Mostrando múltiples trazos en una figura
>> x=[3.2 4.1 5.0 5.6];
>> y=[2.5 4.0 3.35 4.9];
>> subplot(2,1,1)
>> plot(x)
>> subplot(2,1,2)
>> plot(y)
GRÁFICOS EN MATLAB
39. -3 -2 -1 0 1 2 3 4
0
-4
450
400
350
300
250
200
150
100
50
Histograma de datos gaussianos
• Gráfico de histograma
x=-2.9:0.2:2.9;
y=randn(5000,1);
hist(y,x)
title('Histograma de datos gaussianos')
GRÁFICOS EN MATLAB
Tipo de gráficos en 2D
40. -0.5 0 0.5 1
-1
-1
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
STOP
• Gráfico de llenado
t=(1/8:2/8:15/8)'*pi; % Vector columna.
x=sin(t);
y=cos(t);
fill(x,y,'r')
% Un círculo rojo rellenado usando
%sólo 8 puntos.
axis('square')
text(-.11,0,'STOP')
title('Señal roja de stop')
GRÁFICOS EN MATLAB
Tipo de gráficos en 2D
Señal roja de stop
50. Gráficos
de línea
Gráficos de
Barras y
mallado
Gráficos
de área y
objetos
constructivos
Gráficos de
superficie
Gráficas de
dirección
Gráficas
volumétrico
GRÁFICOS EN MATLAB
GRÁFICOS TRIDIMENSIONALES
52. -1
-0.5
0
0.5
1
-1
-0.5
0
0.5
0
1
5
30
25
20
15
10
GRÁFICOS EN MATLAB
quiver3 (x,y,z,u,v,w): grafica la velocidad con (x,y,z) es la posición y (u,v,w) es la
velocidad
t=linspace(0,8*pi,300);
plot3(sin(t),cos(t),t),grid on
quiver3(sin(t),cos(t),t,cos(t),-sin(t),ones(1,300))
-1
-0.5
0
0.5
1
1.5 -1.5
-1
-0.5
0
0.5
1
1.5
0
-1.5
5
30
25
20
15
10
53. X=
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
-2
-1
0
2
-2
-1
0
1
Y=
10 10 10
11 11 11 0
12 12 12
13 13 13
14 14 14
-0.5
2
0.5
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> Z = X .* exp(-X.^2 - Y.^2);
>> surf(X,Y,Z)
meshgrid : genera una
matriz X cuyas filas son
del vetor x, y una matriz
Y cuyas columnas son el
vector y
1
surf: genera la gráfica de
superficie
GRÁFICOS EN MATLAB
Trazado de superficie y mallado
>> [X,Y] = meshgrid(1:3,10:14)
56. (X,Y,Z)
GRÁFICOS EN MATLAB
view(az,el) : Fija el ángulo de visión especificando el azimut az y la elevación el.
view([x,y,z]) : Coloca la vista en la coordenada (x,y,z)
57. -1.5 -1 -0.5 0 0.5 1 1.5 2
-2
-1
0
1
2
-0.5
-2
0
0.5
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> Z = X .* exp(-X.^2 - Y.^2);
>> surf(X,Y,Z)
>> view(10,70)
GRÁFICOS EN MATLAB
azimut y elevación
están en grados
sexagesimales
61. surfnorm : Calcula y muestra las superficies normales en 3-D
clear all;clc;clf;
[x,y]=meshgrid(-3:.2:3,-4:.2:4);
z=y.^2.*exp(-x.^2-0.3*y.^2);
% generamos los vectores normales
% en cada punto
[u,v,w]=surfnorm(x,y,z);
%Grafiquemos la superficie
surf(x,y,z,'edgecolor','none',...
'facecolor','yellow');
camlight left;
lighting phong;
hold on
% graficamos los vectores normales
% (u,v,w) en cada (x,y,z) con un
% factor de escala de 0.5
quiver3(x,y,z,u,v,w,0.5)
hold off
axis equal
GRÁFICOS EN MATLAB
62. numérico de 2 dimensiones
clc;clf;
[x,y]=meshgrid(-2:.2:2,-4:.2:4);
f=y.^2.*exp(-x.^2-0.3*y.^2);
[dx,dy]=gradient(f,.2,.2);
figure(1)
contour(x,y,f,10);
hold on
quiver(x,y,dx,dy);
hold off
grid on
GRÁFICOS EN MATLAB
Gradient: Devuelve el gradiente numérico de una función.
[FX,FY] = gradient(F) : Devuelve los
4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-4
-3
-2
-1
0
1
2
3
4
68. Dond M puede ser:
-10
-5
0
5
10
-10
-5
0
5
Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1);
surf(X,Y,Z)
colormap(Summer)
1
0.5
0
-0.5
10
GRÁFICOS EN MATLAB
colormap(M) :
El mapa de colores (colormap) es la representación de los colores en una matriz de
m-por-3 de npumeros reales entre 0.0 y 1.0; cada fila es un vector RGB que define un
color
[X,Y]=meshgrid(-10:0.5:10);