The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →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.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
MATLAB: A Practical Introduction to Programming and Problem Solving | $46.21 | Buy on Amazon |
| 2 |
|
MATLAB for Engineers | $156.99 | Buy on Amazon |
| 3 |
|
MATLAB for Engineering Applications | $28.85 | Buy on Amazon |
| 4 |
|
MATLAB and Simulink Crash Course for Engineers | $59.99 | Buy on Amazon |
| 5 |
|
MATLAB: A Practical Introduction to Programming and Problem Solving | $18.19 | Buy on Amazon |
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.
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.
#1 Best Overall
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.
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:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallclear
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")
clearelimina variables del espacio de trabajo;clclimpia la ventana de comandos yclose allcierra las figuras abiertas. Son útiles para empezar desde una sesión limpia, pero no son requisitos deplot.linspacecrea los puntos del eje horizontal ysin(x)calcula el seno para cada uno.figurecrea una ventana de figura.plottraza los datos."b-"pide una línea azul continua y"LineWidth", 1.5ajusta su grosor.grid onmuestra la cuadrícula;xlabel,ylabelytitleidentifican 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:
Rank #2
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.
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.
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:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsx = 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.
Rank #3
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.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →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:
[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:
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.
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.
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.
Recommended Free Tools
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:
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.
Recommended Free Tools
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.
Quick Recap
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.

