La gráfica más útil para los ingenieros es la gráfica x-y. Un conjunto de pares ordenados se usa para identificar puntos sobre una gráfica bidimensional; luego los puntos se conectan con líneas rectas. Los valores de x y y se pueden medir o calcular. Por lo general, a la variable independiente se le da el nombre x y se grafica en el eje x, y la variable dependiente recibe el nombre y y se grafica en el eje y.
Una vez definidos los vectores de valores x y valores y, Matlab hace fácil la creación de gráficas. A través de medición, se obtiene un conjunto de datos tiempo contra distancia.
Se pueden almacenar los valores de tiempo en un vector llamado x (el usuario puede definir cualquier nombre conveniente) y los valores de distancia en un vector llamado y:
x = [0:2:18];
y = [0 1.31 2.13 3.29 4.85 5.19 6.19 7.96 8.33 9.17];
Para graficar estos puntos, se usa el comando plot, con x y y como argumentos:
plot(x,y)
Automáticamente se abre una ventana de gráficas, la que Matlab llama Figure 1. En la ilustración 99 se muestra la gráfica resultante.
La buena práctica para graficar, en especial en materias de matemáticas requiere unidades y un título en las gráficas. Los siguientes comandos agregan un título, etiquetas a los ejes x y y, y una retícula de fondo:
plot(x,y)
title(‘Ejemplo 1’)
xlabel(‘tiempo (segundos)’)
ylabel(‘distancia (metros)’)
grid on
En la ilustración 100 se ve como queda la gráfica ahora con las buenas prácticas del graficado.
En la tabla 20 se resumen los comandos que se utilizan para la creación y diseño de graficas.
Tabla 20. Funciones para la elaboración de gráficas.
Función | Descripción | Ejemplo |
plot | Crea un grafica de dos dimensiones. | plot(x,y) |
title | Agrega un título a una gráfica. | title(‘Mi gráfico’) |
Xlabel | Agrega una etiqueta al eje x. | xlabel(‘Variable x’) |
ylabel | Agrega una etiqueta al eje y. | ylabel(‘Variable y’) |
grid | Agrega una cuadricula a la gráfica. Con on se activa la cuadrícula. Con off se desactiva la cuadrícula. | grid grid on grid off |
pause | Pausa la ejecución del programa. | pause |
figure | Abre una figura, muy útil para llevar un control de las gráficas y en que ventana abrirlas. | figure(1) figure(2) |
hold | Permite seguir creando sobre una figura con gráficas ya en ella. Con on se activa. Con off se desactiva. | hold on hold off |
Se pueden hacer gráficas con más de una línea. Matlab por defecto borra cualquier plot que no sea el ultimo, es decir el único plot que cuenta es el que se encuentre en la línea más baja. Para evitar esta situación se puede utilizar el comando hold on, este comando localizado después del primer plot y antes de cualquier otro permitirá que se grafiquen todos los plots hasta que aparezca el comando hold off o finalice la ejecución.
Por ejemplo.
%Generas el vector x y el vector y
x = 0:pi/100:3*pi;
y = cos(x*4);
%Grafica los valores
plot(x,y)
%Activas el hold y con ello ya se puede seguir graficando
hold on;
z = 2*sin(x*2);
plot(x,z)
Al final resulta en una figura con doble gráfica como la de la ilustración 101.
Esta forma da el mismo resultado de la ilustración 101.
Otra forma de crear múltiples líneas en una misma gráfica es ingresar ambas líneas dentro del comando plot.
plot(x, y, x, z)
Con algunos comandos es posible modificar las características de las gráficas. Se pueden seleccionar diferentes estilos para el tipo de línea, tipo de punto o el color.
En la tabla 21 están los modificadores que se pueden utilizar dentro del comando plot.
Tabla 21. Modificadores.
Tipo de línea. | Indicador. | Tipo de punto. | Indicador. | Color. | Indicador. |
Sólida | – | Punto. | . | Azul. | b |
Punteada | : | Círculo. | O | Verde. | g |
Raya-punto | -. | marca x. | X | Rojo. | r |
rayada | — | Más. | + | Cian. | c |
Estrella. | * | Magenta. | m | ||
Cuadrado. | s | Amarillo. | y | ||
Diamante. | d | Negro. | k | ||
triángulo hacia abajo. | |||||
triángulo hacia arriba. | |||||
triángulo hacia izquierda. | |||||
triángulo hacia derecha. | |||||
Pentagrama. | |||||
Hexagrama. |
Si se ejecuta el siguiente código se puede observar las gráficas en la ilustración 102. En esta cada línea tiene un tipo de línea, tipo de punto y color diferente.
x = [0:1:9];
y = [0.13 3.24 8.35 22.46 12.54 5.61 21.70 9.81 21.17 1.18];
plot(x,y,’-.+b’,x,y/2,’:sk’,x,y*2,’–>r’)
Es posible modificar el escalamiento de las gráficas, para ello se utiliza el comando axis. También es posible agregar distintos textos como ayuda para interpretar la gráfica. Estas funciones se resumen en la tabla 22.
Al agregar los siguientes comandos, se modifica la ilustración 102 para que se agregue información sobre la gráfica.
legend(‘grafica 1’, ‘grafica 2’, ‘grafica 3’)
text(0,25,’Etiqueta ejemplo’)
También se agrega un título, etiquetas y ajustamos un poco los ejes para que no se vea tan apretada la gráfica.
xlabel(‘eje x’)
ylabel(‘eje y’)
title(‘Ejemplo de una gráfica con ejes modificados’)
axis([0,11,-1,50])
Finalmente, resulta en la gráfica de la ilustración 103.
Tabla 22. Funciones de apoyo para las gráficas.
Función | Descripción |
axis([x0 x1 y0 y1]) | La entrada del comando axis debe ser un vector de cuatro elementos. Los dos primeros determinan el eje x mientras que los dos últimos determinar el eje y. |
legend(‘string1, ‘string2’, etc) | Le permite agregar una leyenda a su gráfica. La leyenda muestra un modelo de la línea y menciona la cadena que especificó. |
text(x_coordinate, y_coordinate, ‘string’) | Le permite agregar un recuadro de texto a la gráfica. El recuadro se coloca en las coordenadas x y y especificadas y contiene el valor de cadena especificado. |
El comando subplot le permite subdividir la ventana en una retícula de m filas y n columnas. La función.
subplot(m,n,p)
Separa la figura en una matriz m x n. La variable p identifica la ubicación de la ventana donde se dibujará la siguiente gráfica. Por ejemplo, si se usa el comando.
subplot(2,3,1)
La ventana se divide en dos filas y tres columnas, y la gráfica se dibuja en la parte superior izquierda. Las ventanas se numeran de izquierda a derecha, de arriba abajo. Esto se puede observar en la ilustración 104.
De manera similar, los siguientes comandos dividen la ventana de gráficos en una gráfica superior y una gráfica inferior (ilustración 105).
x = -2*pi: pi/10: 2*pi;
subplot(2,1,1)
plot(x,sin(x))
subplot(2,1,2)
plot(x,cos(x))
En esta sección se muestran los distintos tipos de gráficos que se pueden usar en Matlab además de las clásicas bidimensionales x-y.
Matlab proporciona capacidades de graficar con coordenadas polares polar (theta, r) genera una gráfica polar del ángulo theta en radianes y distancia radia r. Por ejemplo, el siguiente código genera la gráfica de la ilustración 106.
x = 0:pi/100:pi;
y = cos(x);
polar(x,y)
En la tabla 23 se explican algunas funciones utilizadas para las gráficas de barra, de pastel e histograma.
Tabla 23. Funciones para gráficas de barra, pastel e histogramas.
Función | Descripción |
bar(x) | Cuando x es un vector, bar genera una gráfica de barras vertical. Cuando x es una matriz bidimensional, bar agrupa los datos por fila. |
barh(x) | Cuando x es un vector, barh genera una gráfica de barras horizontal. Cuando x es una matriz bidimensional, barth agrupa los datos por fila. |
bar3(x) | Genera una gráfica de barras tridimensional. |
bar3h(x) | Genera una gráfica de barras horizontal tridimensional. |
pie(x) | Genera una gráfica de pastel. Cada elemento en la matriz se representa como una rebanada de pastel. |
Pie3(x) | Genera una gráfica de pastel tridimensional. Cada elemento en la matriz se representa como una rebanada de pastel. |
hist(x) | Genera un histograma. |
Definir el vector Z. Este se utiliza para crear los diferentes tipos de gráficos (usar la función subplot para mostrar las diferentes gráficas en la ilustración 107).
z = [2,5,5,1,4,1,5,3,4];
subplot(3,1,1)
bar(z),title(‘Gráfica de barras’)
subplot(3,1,2)
pie(z),title(‘Gráfica de pastel’)
subplot(3,1,3)
histogram(z),title(‘Histograma’)
La función fplot le permite graficar una función sin definir arreglos de valores x y y correspondientes. Por ejemplo, en la ilustración 108.
fplot(@(x) cos(x))
Matlab calcula y crea la función sin necesidad de agregar nada más.
Matlab ofrece una variedad de comandos para graficas tridimensionales, muchas de las cuales se mencionan en la tabla 23.
Tabla 24. Funciones para gráficas tridimensionales.
Función. | Descripción. |
plot3(x,y,z) | Crea una gráfica lineal tridimensional. |
comet3(x,y,z) | Genera una versión animada de plot3. |
mesh(z) o mesh(x,y,z) | Crea una gráfica de superficie de malla. |
surf(z) o surf(x,y,z) | Crea una gráfica de superficie; similar a la función mesh. |
shading interp | Interpola entre los colores usados para ilustrar gráficas de superficie. |
shading flat | Colorea cada sección de retícula con un color sólido. |
colormap(map_name) | Permite al usuario seleccionar el patrón de color a usar en las gráficas de superficie. |
contour(z) o contour(x,y,z) | Genera una gráfica de contorno. |
surfc(z) o surfc(x,y,z) | Crea una gráfica de superficie combinada con una gráfica de contorno. |
pcolor(z) o pcolor(x,y,z) | Crea una gráfica en pseudocolor. |
A continuación, hay varios ejemplos de cómo utilizar las funciones de la tabla anterior.
Para plot3 es necesario ingresar tres vectores del mismo tamaño. El siguiente código genera la gráfica de la ilustración de 109.
t = 0:pi/500:40*pi;
x = (3 + cos(sqrt(32)*t)).*cos(t);
y = sin(sqrt(32) * t);
z = (3 + cos(sqrt(32)*t)).*sin(t);
plot3(x,y,z)
axis equal
xlabel(‘x(t)’)
ylabel(‘y(t)’)
zlabel(‘z(t)’)
Para comet3 es similar que plot3, solo que crea una animación de cómo se va creando el grafico. Con el código se abajo se genera la ilustración 110.
[xmat,ymat,zmat] = peaks(100);
x = xmat(:);
y = ymat(:);
z = zmat(:);
comet3(x,y,z)
Para mesh es similar que plot3, solo que crea un gráfico de malla. Con el código se abajo se genera la ilustración 111.
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)
Para surf y surfc también se aplica tres vectores, la diferencia es que surfc crea una gráfica de superficie adicional a la tridimensional. Con el código siguiente se genera la ilustración 112 respectivamente.
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surfc(X,Y,Z)
Ejercicio 8.8.1. En la siguiente tabla aparecen los nacimientos de hombres y mujeres en la ciudad de México de los años 2009 al 2020. Con estos datos realice un gráfico de barras (código en lustración 113, solución en ilustración 114).
Año. | Hombres. | Mujeres. |
2020 | 828 | 800 |
2019 | 1.061 | 1.030 |
2018 | 1.098 | 1.063 |
2017 | 1.134 | 1.099 |
2016 | 1.162 | 1.131 |
2015 | 1.192 | 1.160 |
2014 | 1.247 | 1.215 |
2013 | 1.255 | 1.223 |
2012 | 1.262 | 1.235 |
2011 | 1.300 | 1.285 |
2010 | 1.326 | 1.317 |
2009 | 1.296 | 1.279 |
Ejercicio 8.8.2. Cree un vector x de valores desde 0 hasta 20π, con un espaciamiento de π/100. Defina los vectores y y z como y = xsen(x) y z=xcos(x) (código en lustración 115, solución en ilustración 116).