Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Para hacer una gráfica en MATLAB, prepara los datos en vectores, represéntalos con una función como plot y añade etiquetas, límites y una leyenda para que el resultado se entienda. Después puedes organizar varias gráficas con tiledlayout y exportar la figura con exportgraphics.

Esta guía recorre el proceso desde una curva sencilla hasta gráficos con varias series, datos de archivos, subgráficas y exportación. Los ejemplos sirven en MATLAB de escritorio y, con las diferencias propias del entorno y la licencia, en MATLAB Online.

La gráfica más sencilla en MATLAB

Este ejemplo dibuja una función seno:

x = linspace(0, 2*pi, 100);
y = sin(x);

plot(x, y)
grid on
xlabel("x")
ylabel("sin(x)")
title("Gráfica de la función seno")

x contiene los valores del eje horizontal y y los valores correspondientes del eje vertical. plot(x,y) dibuja cada par de valores como una línea. linspace(a,b,n) genera n valores espaciados entre a y b; aquí crea 100 puntos entre 0 y 2π. Consulta la introducción oficial de MathWorks a las gráficas.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Para una función aplicada a un vector, MATLAB calcula el resultado elemento por elemento. Por ejemplo, usa x.^2 para elevar al cuadrado cada elemento de x; el operador ^ no significa lo mismo y puede dar un error de dimensiones si se aplica así a un vector.

Preparar los datos

Una gráfica necesita datos compatibles. En una gráfica de pares x,y, ambos vectores deben contener el mismo número de elementos.

Escribir los valores manualmente

x = [1 2 3 4 5];
y = [2 4 3 7 6];
plot(x, y)

Generarlos con una función

x = linspace(0, 2*pi, 200);
y = cos(x);
plot(x, y)

También puedes crear una secuencia con el operador de dos puntos:

x = 0:0.1:10;
y = x.^2;
plot(x, y)

En 0:0.1:10, el segundo valor establece el incremento. Si necesitas un número concreto de puntos entre dos extremos, linspace suele ser más cómodo.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leer datos de una tabla o un CSV

Si las variables ya están en una tabla, accede a sus columnas por nombre:

datos = table([1;2;3;4], [10;13;12;18], ...
    'VariableNames', {'Tiempo','Temperatura'});

plot(datos.Tiempo, datos.Temperatura)
xlabel("Tiempo")
ylabel("Temperatura")
grid on

Los nombres usados en el código deben coincidir con los nombres de las columnas. Para cargar un archivo CSV:

datos = readtable("datos.csv");
plot(datos.Tiempo, datos.Temperatura)

Si el archivo usa otros encabezados, sustituye Tiempo y Temperatura por los nombres reales. MATLAB documenta la representación directa de variables de tablas mediante plot para versiones R2022a y posteriores; readtable permite importar los datos para después seleccionar las columnas necesarias. Más detalles en la documentación de plot.

Construir una gráfica completa, paso a paso

Este script añade una figura nueva, una línea con estilo definido, etiquetas y cuadrícula:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
clear
clc
close all

x = linspace(0, 2*pi, 100);
y = sin(x);

figure
plot(x, y, "b-", "LineWidth", 1.5)

grid on
xlabel("Ángulo [rad]")
ylabel("Amplitud")
title("Función seno")
  1. clear elimina variables del espacio de trabajo; clc limpia la ventana de comandos y close all cierra las figuras abiertas. Son útiles para empezar desde una sesión limpia, pero no son requisitos de plot.
  2. linspace crea los puntos del eje horizontal y sin(x) calcula el seno para cada uno.
  3. figure crea una ventana de figura. plot traza los datos.
  4. "b-" pide una línea azul continua y "LineWidth", 1.5 ajusta su grosor.
  5. grid on muestra la cuadrícula; xlabel, ylabel y title identifican los ejes y la gráfica.

Las etiquetas deben describir qué se mide y, cuando corresponda, incluir unidades. Una línea con un color atractivo no basta si el lector no puede interpretar sus ejes o saber qué representan los datos.

Personalizar color, línea y marcadores

La forma abreviada es práctica para un estilo sencillo:

plot(x, y, "r--o")

En este formato, r indica rojo, -- una línea discontinua y o marcadores circulares. Para controlar cada propiedad con claridad, usa argumentos nombre-valor:

plot(x, y, ...
    "Color", [0 0.45 0.74], ...
    "LineStyle", "--", ...
    "Marker", "o", ...
    "LineWidth", 1.5, ...
    "MarkerSize", 5)

El color como vector RGB facilita elegir tonos específicos. La sintaxis nombre-valor también hace más fácil revisar o modificar el código. La función plot admite estilos de línea y propiedades gráficas, incluidos color, marcador y grosor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Dibujar varias series en una gráfica

Para comparar dos funciones, puedes pasar las dos parejas de datos en una llamada:

plot(x, y1, x, y2)

O añadir cada línea por separado con hold on:

x = linspace(-2*pi, 2*pi, 200);
y1 = sin(x);
y2 = cos(x);

plot(x, y1, "LineWidth", 1.5)
hold on
plot(x, y2, "--", "LineWidth", 1.5)
hold off

legend("sen(x)", "cos(x)", "Location", "southwest")
grid on

hold on conserva el contenido actual de los ejes para que puedas añadir otra serie. Con hold off, la siguiente orden de trazado vuelve al comportamiento normal y reemplaza el contenido de esos ejes. Añade una leyenda con nombres que expliquen las series, no etiquetas genéricas como “línea 1”. Para documentar la gráfica también puedes usar título y nombres de ejes:

title("Comparación de funciones")
xlabel("x")
ylabel("Valor de la función")
legend("sen(x)", "cos(x)", "Location", "best")

La opción "best" deja que MATLAB elija una ubicación para la leyenda; también puedes indicar una posición concreta. Para saber exactamente qué series representa cada etiqueta cuando hay líneas auxiliares, guarda los identificadores devueltos por plot y pásalos a legend:

p1 = plot(x, y1);
hold on
p2 = plot(x, y2);
legend([p1 p2], {"Serie A", "Serie B"})

Consulta las pautas de MathWorks para añadir título, etiquetas y leyenda.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ajustar límites, cuadrícula y escala

MATLAB ajusta los ejes automáticamente, pero puedes fijar un rango si ayuda a comparar gráficas:

xlim([0 2*pi])
ylim([-1.2 1.2])

Como alternativa, xlim tight ajusta el eje horizontal al rango de los datos y ylim padded añade espacio alrededor de los valores verticales. Evita escoger límites que oculten datos: por ejemplo, ylim([0 1]) recortaría cualquier valor por encima de 1. Revisa el rango antes de fijar límites. La documentación de xlim describe los modos de ajuste automático, incluidos tight, padded y tickaligned.

Para controlar la cuadrícula:

grid on
 grid minor
% Para quitarla:
grid off

grid minor solicita líneas secundarias; su presencia depende del tipo de eje y la configuración. Si trabajas con ejes específicos, puedes guardar su identificador y aplicarle propiedades directamente:

ax = gca;
grid(ax, "on")

Para datos con rangos que abarcan varios órdenes de magnitud, considera una escala logarítmica:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
x = logspace(0, 3, 100);
y = x.^2;
loglog(x, y)
grid on

loglog usa escala logarítmica en ambos ejes; semilogx la usa solo en X y semilogy solo en Y. Elige la escala de acuerdo con los datos y explícalo en las etiquetas si puede afectar la interpretación.

Crear varias gráficas en una ventana

Para diseños nuevos, MathWorks recomienda tiledlayout con nexttile: ofrece control del espaciado, puede reajustar los paneles y facilita administrar leyendas y barras de color. Está disponible desde MATLAB R2019b. Por ejemplo:

x = linspace(0, 2*pi, 200);
t = tiledlayout(2, 1);
title(t, "Funciones trigonométricas")

nexttile
plot(x, sin(x))
title("Seno")
ylabel("sin(x)")
grid on

nexttile
plot(x, cos(x))
title("Coseno")
xlabel("x")
ylabel("cos(x)")
grid on

El título de cada panel se establece con title; el título general del diseño se añade con title(t,...). También puedes ajustar espacios y márgenes:

t = tiledlayout(2, 2, ...
    "TileSpacing", "compact", ...
    "Padding", "compact");

En versiones anteriores a R2019b, o al mantener código antiguo, usa subplot(m,n,p): divide la figura en m filas, n columnas y selecciona la posición p.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
subplot(2, 1, 1)
plot(x, sin(x))

subplot(2, 1, 2)
plot(x, cos(x))

subplot sigue siendo útil, aunque ofrece menos control del espacio y las funciones compartidas que tiledlayout. Consulta la documentación de MathWorks sobre tiledlayout y subplot.

Elegir otro tipo de gráfica

Usa el tipo de gráfica que mejor exprese la estructura de los datos:

Necesidad Función Ejemplo breve
Curva 2D plot plot(x,y)
Relación entre observaciones scatter scatter(x,y,40,"filled")
Comparar categorías bar bar(valores)
Distribución de valores histogram histogram(datos)
Escala logarítmica en ambos ejes loglog loglog(x,y)
Curva 3D plot3 plot3(x,y,z)
Superficie 3D surf o mesh surf(X,Y,Z)

Ejemplo de barras con categorías:

categorias = ["A", "B", "C", "D"];
valores = [12 19 7 15];

bar(valores)
xticklabels(categorias)
ylabel("Cantidad")
title("Resultados por categoría")
grid on

Ejemplo de dispersión:

x = randn(100,1);
y = 2*x + randn(100,1);

scatter(x, y, 40, "filled")
xlabel("Variable X")
ylabel("Variable Y")
grid on

Ejemplo de histograma:

datos = randn(1000,1);
histogram(datos)
xlabel("Valor")
ylabel("Frecuencia")
title("Distribución de los datos")

Curvas y superficies en 3D

plot3 dibuja una curva a partir de coordenadas X, Y y Z:

t = 0:pi/20:10*pi;
x = sin(t);
y = cos(t);
z = t;

plot3(x, y, z, "LineWidth", 1.5)
xlabel("X")
ylabel("Y")
zlabel("Z")
title("Hélice en 3D")
grid on

Para una superficie, crea primero una malla de coordenadas:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
[X,Y] = meshgrid(-2:0.1:2);
Z = X .* exp(-X.^2 - Y.^2);

surf(X,Y,Z)
xlabel("X")
ylabel("Y")
zlabel("Z")
colorbar

surf muestra una superficie coloreada, mesh una malla de líneas y plot3 curvas o puntos en el espacio. La documentación de plot3 explica sus opciones para gráficos tridimensionales.

Usar dos escalas verticales con cuidado

yyaxis permite asignar series a dos ejes Y:

x = 0:0.1:10;
y1 = sin(x);
y2 = 1000*cos(x);

yyaxis left
plot(x, y1, "LineWidth", 1.5)
ylabel("Seno")

yyaxis right
plot(x, y2, "--", "LineWidth", 1.5)
ylabel("Coseno escalado")

xlabel("x")
title("Dos escalas verticales")
grid on

Dos escalas pueden hacer visibles series con magnitudes muy diferentes, pero también pueden sugerir una comparación engañosa. Úsalas solo si tiene sentido comparar las variables y rotula claramente ambos ejes con sus unidades.

Guardar o exportar la gráfica

Para exportar una gráfica creada por código, exportgraphics permite elegir formato y resolución. Un PNG a 300 DPI puede servir para informes o presentaciones:

exportgraphics(gca, "grafica.png", "Resolution", 300)

Para líneas y texto nítidos en impresión, exporta a PDF vectorial:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
exportgraphics(gca, "grafica.pdf", "ContentType", "vector")

gca identifica los ejes actuales. Para exportar una figura completa, puedes usar gcf, que identifica la figura actual:

f = gcf;
exportgraphics(f, "figura_completa.pdf")

También puedes exportar un diseño con varias teselas pasando el objeto de diseño:

t = tiledlayout(2,1);
nexttile
plot(1:10)
nexttile
plot(10:-1:1)

exportgraphics(t, "dos_graficas.pdf")

Elige el formato según el destino: PNG para documentos y web, PDF vectorial para impresión o publicación y JPEG sobre todo para contenido fotográfico, no líneas y texto finos. SVG está documentado para exportgraphics desde R2025a y HTML desde R2026a; comprueba tu versión antes de depender de esos formatos. Consulta la documentación oficial de exportgraphics para formatos y objetos compatibles.

Si no especificas una ruta, el archivo se guarda en la carpeta actual. Compruébala con:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
pwd

Para elegir una carpeta, indica una ruta. Si usas una carpeta relativa como resultados, créala antes si no existe:

if ~isfolder("resultados")
    mkdir("resultados")
end

exportgraphics(gca, fullfile("resultados", "grafica.png"), ...
    "Resolution", 300)

También puedes guardar la figura como archivo MATLAB .fig si necesitas volver a abrirla y editarla en MATLAB. Exportar una imagen no conserva el mismo nivel de editabilidad.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Resolver problemas frecuentes

“Vectors must be the same length”

Comprueba que las dos variables tienen el mismo número de elementos:

numel(x)
numel(y)

Por ejemplo, x = 1:5 y y = [2 4 6] no forman pares completos. Corrige los datos o selecciona los valores correspondientes antes de llamar a plot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La gráfica aparece vacía o incompleta

Comprueba que los datos existen, que no son todos inválidos y que los límites no los excluyen:

whos x y
any(isnan(y))
any(isinf(y))

También revisa xlim y ylim, y confirma que estás trazando en los ejes esperados. Los valores NaN pueden dejar huecos en una línea; valores Inf pueden afectar el resultado. No los elimines sin revisar si representan mediciones ausentes o errores con significado para el análisis.

La nueva serie borra la anterior

Activa hold on antes de añadir la siguiente serie y usa hold off cuando termines. Si hay varias ventanas o ejes, especifica el eje para evitar dibujar en el equivocado:

ax = axes;
plot(ax, x, y)

Con un diseño de teselas, pasa el eje devuelto por nexttile:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
t = tiledlayout(1,2);

ax1 = nexttile;
plot(ax1, x, sin(x))

ax2 = nexttile;
plot(ax2, x, cos(x))

La leyenda identifica las líneas incorrectamente

Asocia las etiquetas con los objetos trazados, en especial si la gráfica incluye líneas auxiliares:

p1 = plot(x, y1);
hold on
p2 = plot(x, y2);
legend([p1 p2], {"Serie A", "Serie B"})

Las subgráficas quedan demasiado juntas

En versiones con tiledlayout, ajusta el espacio entre paneles y los márgenes con "TileSpacing" y "Padding". En versiones anteriores, subplot es la alternativa disponible, aunque puede requerir ajustes manuales.

La imagen exportada se ve borrosa

Para PNG, especifica una resolución adecuada, por ejemplo 300 DPI. Para gráficos compuestos por líneas y texto, usa PDF vectorial cuando el destino lo admita. Aumentar los DPI de un PNG mejora su resolución rasterizada, pero no lo convierte en un archivo vectorial.

tiledlayout no está disponible

Comprueba la versión de MATLAB. tiledlayout se introdujo en R2019b; en versiones anteriores utiliza subplot. No necesitas R2019b para hacer gráficas básicas con plot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plantilla reutilizable

Adapta este script para dibujar dos series, etiquetar la gráfica, fijar límites y exportar un PNG:

clear
clc
close all

% Datos
x = linspace(0, 2*pi, 200);
seno = sin(x);
coseno = cos(x);

% Figura y gráficas
figure("Color", "white")
plot(x, seno, ...
    "Color", [0 0.45 0.74], ...
    "LineWidth", 1.8)
hold on
plot(x, coseno, ...
    "Color", [0.85 0.33 0.10], ...
    "LineStyle", "--", ...
    "LineWidth", 1.8)
hold off

% Descripción
title("Funciones seno y coseno", "FontSize", 14)
xlabel("Ángulo [rad]")
ylabel("Valor")
legend("sin(x)", "cos(x)", "Location", "best")

% Presentación
grid on
xlim([0 2*pi])
ylim([-1.2 1.2])

% Exportación
exportgraphics(gca, "funciones_trigonometricas.png", ...
    "Resolution", 300)

Cuando uses datos propios, sustituye las variables y etiquetas, comprueba que las longitudes coinciden y ajusta los límites al rango real. Para el siguiente paso, elige el tipo de gráfica según la pregunta: líneas para tendencias ordenadas, dispersión para relaciones entre observaciones y barras para comparar categorías.

¿Necesitas instalar MATLAB?

No necesariamente para empezar. MATLAB Online permite trabajar en un navegador, pero el acceso disponible, las horas y los productos dependen de la cuenta y la licencia. MathWorks señala que existe una modalidad básica de MATLAB Online con un límite de 20 horas y que el acceso institucional puede ofrecer más capacidad; revisa las condiciones actuales de MATLAB Online. Si estudias en una universidad, pregunta primero si ofrece Campus-Wide Access o acceso institucional.

GNU Octave es gratuito y admite muchas operaciones numéricas y gráficas con una sintaxis parecida, pero no es completamente compatible con MATLAB: algunas funciones, toolboxes y características gráficas pueden diferir. Python con Matplotlib también es gratuito, aunque implica aprender otro entorno y sintaxis. Si un curso, laboratorio o proyecto requiere específicamente MATLAB o productos de MathWorks, confirma la licencia adecuada antes de cambiar de herramienta.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.