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
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.
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.
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
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
Gráficos
de línea
Gráficos
de barras
Gráficos
de área
Gráficas de
dirección
Gráficas
radiales
Gráficos de
dispersión
GRÁFICOS EN MATLAB
GRÁFICOS BIDIMENSIONALES
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
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);
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')
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;
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
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
-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
-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;
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:2\pi');
ylabel('Amplitud');
title('Trazado de la función seno','fontsize',12)
El carácter \ pi crear el símbolo π.
GRÁFICOS EN MATLAB
Creación del texto en puntos dados usando el comando text
xlabel('0 \leq \itt \leq 2\pi');
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)
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
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
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.
Valor
de
la
Function
-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
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(-\pi\div4)',...
'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
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
plotyy(t,y,t,y1,'plot','stem');
GRÁFICOS EN MATLAB
plotyy : Genera dos ejes vertiicales para dos funvciones distintas
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.20.40.60.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
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
0 1 2 3 4 5 6 7 8 9 10
0
10
8
10
6
10
4
10
2
10
x = 0:.1:10;
semilogy(x,10.^x)
GRÁFICOS EN MATLAB
10
10
axis auto axis square axis 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
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:
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.
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
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
t=0:0.1:2*pi;
y1=exp(sin(t));
y2=cos(t);
y3=y1./y2;
subplot(2,2,[1 3]);
plot(t,y1);
axis([0 2*pi 0 3]);
subplot(2,2,2);
plot(t,y2);
axis square
grid;
subplot(2,2,4);
plot(t,y3);
axis tight;
Mostrando múltiples trazos en una figura
GRÁFICOS EN MATLAB
GRÁFICOS EN MATLAB
Ejercicio:
Probar para las siguientes funciones:
Para un rango de x [-6,6] y un paso de 0.001
-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
-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
52%
36%
4%
2%
3% 2%
PP
PSOE
CiU
IU
PNV
Otros
x=[183 125 15 8 7 12]
pie(x),legend('PP',
'PSOE','CiU','IU','PNV','Otros')
GRÁFICOS EN MATLAB
• Diagrama de sectores
Número
de
Escaños
1 2 3
0
300
250
200
150
100
50
350
0%
86%
71%
57%
43%
29%
14%
100%
x=[183 125 42]
pareto(x),ylabel('Número de Escaños')
GRÁFICOS EN MATLAB
x=linspace(-2,3,3000);
y=(x.^2).*(x<0)+1.*((0<=x)&(x<1))+(-x+2).*(1<=x);
plot(x,y,':','Linewidth',2),grid on,title('Función definida a trozos')
Función definida a trozos
4
3.5
Ejercicio
GRÁFICOS EN MATLAB
GRÁFICOS TRIDIMENSIONALES
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
t
-1
-0.5
0.5
1
-1
-0.5
0
0.5
40
30
20
10
0
1
0
sin(t)
cos(t)
ylabel('cos(t)')
zlabel('t')
grid on
axis square
plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1,LineSpec,...)
plot3(...,'PropertyName',PropertyValue,...)
h = plot3(...)
Ejemplo
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
GRÁFICOS EN MATLAB
Trazado de líneas en 3-D
La función plot3 se encarga de la creación de los trazos tridimensionales, de un
conjunto de puntos, su sintaxis es:
-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
-0.5
X
Y
Z = sin(R)./R;
figure
mesh(X,Y,Z)
xlabel('X'), ylabel('Y'), zlabel('Z')
figure
mesh(X,Y,Z,'EdgeColor','black')
xlabel('X'), ylabel('Y'), zlabel('Z')
GRÁFICOS EN MATLAB
Trazado de superficie y mallado
[X,Y]= meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
-2
0
2
-2
0
2
-0.5
0.5
0
X
Y
ezsurf :
syms X Y Z
Z = X*exp(-X^2-Y^2);
ezsurf(Z)
GRÁFICOS EN MATLAB
X/exp(X2 + Y2)
(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)
-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
0
10
30
0
10
Freezing
Nuclear
Burning
Hot
Warm
Neutral
Cool
Cold
GRÁFICOS EN MATLAB
colorbar : Añade una barra de color a la figura actual
Ejemplo
xa = -2:.2:2;
ya = xa;
[X Y] = meshgrid(xa,ya);
clear;lc;
[x,y]=meshgrid(-3:0.1:3,-2:0.5:2);
figure(1)
z=exp(-x.^2-y.^2);
h=waterfall(x,y,z);
set(h,'facecolor','blue',...
'edgecolor','blue',...
'facealpha',0.1);
grid on
xlabel('eje X')
ylabel('eje Y')
zlabel('eje Z')
axis tight
GRÁFICOS EN MATLAB
Waterfall : Trazado en cascada
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
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.
0.6
1
mesh(X,Y,Z)
figure(2)
surf(X,Y,Z)
view([10,-12,2])
figure(3)
[C,h]=contour(X,Y,Z);
clabel(C,h)
clabel: Añade etiquetas de altura a los gráficos de contorno
GRÁFICOS EN MATLAB
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