Diagrama de dispersión en MATLAB

Ammar Ali 15 febrero 2024
Diagrama de dispersión en MATLAB

Este tutorial discutirá la creación de un diagrama de dispersión usando la función scatter() en MATLAB.

Cree un diagrama de dispersión usando la función scatter() en MATLAB

La función scatter(x,y) crea un diagrama de dispersión en la ubicación especificada por los vectores de entrada x e y. Por defecto, la función scatter() usa marcadores circulares para trazar los datos dados. Por ejemplo, usemos la función scatter() para crear un diagrama de dispersión de datos dados. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);  
scatter(x,y)

Producción:

Gráfico de dispersión

Los datos almacenados en las variables x e y se utilizan para crear un diagrama de dispersión en la salida. Asegúrate de que la longitud de la variable x e y sea la misma. De lo contrario, MATLAB mostrará un error. Por defecto, la función scatter() usa el valor por defecto para el tamaño y color de los círculos, pero podemos cambiar las propiedades por defecto de la función. Por ejemplo, para cambiar el tamaño de los círculos, tenemos que definir el tamaño de los círculos como un tercer argumento dentro de la función scatter(). Por ejemplo, cambiemos el tamaño de los círculos en el gráfico anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);  
scatter(x,y,10)

Producción:

Cambiar el tamaño de los círculos en el diagrama de dispersión

El tamaño de los círculos en la salida anterior es diferente en comparación con el tamaño de los círculos en el diagrama de dispersión anterior. El tamaño debe ser un valor numérico positivo o un vector del mismo tamaño que los vectores de entrada x e y. Si el tamaño es un solo valor numérico positivo, al igual que en el código anterior, se aplicará a todos los círculos presentes en el diagrama de dispersión. También podemos darle a cada círculo un valor de tamaño diferente usando un vector de la misma longitud que los vectores de entrada x e y. Por ejemplo, cambiemos el tamaño de cada círculo en el diagrama de dispersión anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize)

Producción:

diagrama de dispersión con diferentes tamaños de círculo

En la salida anterior, cada círculo tiene un tamaño diferente. También podemos alterar el color de los círculos en el diagrama de dispersión pasándolo como un cuarto argumento en la función scatter(). Por ejemplo, cambiemos el color de los círculos en el diagrama de dispersión anterior a negro. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,[0 0 0])

Producción:

Cambio de color de los círculos en el gráfico de dispersión

En el diagrama de dispersión anterior, el color de los círculos es negro, pero podemos darle cualquier color ingresando el valor RGB de ese color como un cuarto argumento en la función scatter(). También podemos cambiar el color pasando el nombre del color como una cadena en la función scatter(). Si definimos solo un valor de color, se aplicará a todos los círculos presentes en el diagrama de dispersión. También podemos darle a cada círculo un color diferente usando un array del mismo tamaño que los vectores de entrada x e y. La matriz puede contener valores numéricos positivos o tripletes RGB de colores. Por ejemplo, cambiemos el color de cada círculo en el diagrama de dispersión anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor)
colorbar

Producción:

diagrama de dispersión con diferentes colores de círculo

El comando colorbar se utiliza en el código anterior para trazar una barra de color en el diagrama de dispersión. Podemos ver en la barra de color que los valores bajos pertenecen al color más frío y los valores altos pertenecen al color más caliente. Usamos un vector con valores numéricos positivos en este ejemplo, pero también podemos usar un array con valores de triplete RGB. Los círculos son huecos en los diagramas de dispersión anteriores, pero también podemos rellenarlos usando la propiedad filled dentro de la función scatter(). Por ejemplo, completemos los círculos presentes en el diagrama de dispersión anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled')
colorbar

Producción:

Rellenar círculos en un gráfico de dispersión

En la salida, se rellena cada color. También podemos cambiar el símbolo del marcador en el diagrama de dispersión. Por defecto, la función scatter() usa el círculo como marcador, pero podemos cambiarlo pasando una cadena que contenga el símbolo del marcador como d para el diamante, p para el pentagrama, h para el hexagrama , etcétera. Por ejemplo, cambiemos el símbolo del marcador de círculo a pentagrama en el diagrama de dispersión anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'p')

Producción:

Cambio del símbolo de marcador en el gráfico de dispersión

En la salida, el símbolo del marcador se cambia a un pentagrama. También podemos alterar la transparencia del marcador usando la propiedad MarkerFaceAlpha en la función scatter(). Podemos cambiar el valor de transparencia de 0 a 1. Por ejemplo, cambiemos la transparencia del diagrama de dispersión anterior a 0.5. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled','MarkerFaceAlpha',0.5)

Producción:

Cambio de la transparencia del marcador en el gráfico de dispersión

En la salida, el marcador tiene el mismo borde y color de cara, pero podemos darle al marcador un color de borde y cara diferente. Para alterar el color del borde del marcador, podemos usar la propiedad MarkerEdgeColor dentro del gráfico scatter(). Para alterar el color de la cara del marcador, podemos usar la propiedad MarkerFaceColor. El valor del color puede ser cualquier triplete RGB o una cadena que contenga el nombre del color. También podemos alterar el ancho de línea del borde del marcador usando la propiedad LineWidth. Por ejemplo, cambiemos el color del borde, el color de la cara y el ancho de línea del marcador en el diagrama de dispersión anterior. Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,'MarkerFaceColor','yellow','MarkerEdgeColor','black','LineWidth',1.5)

Producción:

Cambiar el color de la cara y el borde del marcador en el gráfico de dispersión

En la salida, el color de la cara del marcador es amarillo y el color del borde es negro. Si queremos crear un diagrama de dispersión 3D, podemos usar la función scatter3(). Esta función es la misma que la función scatter(), excepto que traza los datos dados en un plano 3D. Podemos dar dos o tres vectores de entrada a la función scatter3(). En el caso de tres entradas, el primer vector contiene las coordenadas x, el segundo contiene las coordenadas y y el tercero contiene las coordenadas z. En el caso de dos vectores de entrada, la tercera coordenada z se tomará de los índices de las dos primeras coordenadas. Por ejemplo, tracemos el diagrama de dispersión anterior en un lugar 3D usando la función scatter3(). Vea el código a continuación.

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)

Producción:

Gráfico de dispersión en plano 3D

También podemos cambiar las propiedades de la función scatter3() de la misma forma que lo hicimos con la función scatter().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Plot