Diagrama polar de MATLAB

Ammar Ali 30 enero 2023
  1. Diagrama polar de MATLAB
  2. Gráfico polar 3D en MATLAB
Diagrama polar de MATLAB

Este tutorial discutirá la creación de un gráfico polar usando la función polarplot() en MATLAB.

Diagrama polar de MATLAB

Un gráfico polar se crea en un sistema de coordenadas polares, que es un sistema de coordenadas bidimensional que muestra la distancia del punto desde el origen y su ángulo con respecto al eje x.

Podemos usar la función polarplot() de Matlab para crear un gráfico polar. La sintaxis básica de la función polarplot() se encuentra a continuación.

polarplot(My_theta,My_rho)

La sintaxis anterior creará un gráfico polar según el ángulo de cada punto My_theta y su distancia desde el origen almacenado en la variable My_rho. Si las dos entradas son vectores, deben tener longitudes iguales.

Si ambas entradas son matrices, deberían tener el mismo tamaño y, en este caso, cada columna de la primera matriz se graficará contra cada columna de la segunda matriz. Si una entrada es un vector y la otra entrada es una matriz, entonces la longitud del vector debe ser igual a la longitud de las columnas o filas presentes en la matriz, y cada columna de la matriz se trazará contra el vector.

Si una sola entrada de la función polarplot() es una matriz, la función trazará más de una línea en el gráfico polar con diferentes colores. Por ejemplo, tracemos dos vectores en las coordenadas polares usando la función polarplot().

Vea el código a continuación.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho = sin(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)

Producción:

gráfico polar de vectores

En el código anterior, usamos dos vectores, y podemos ver en el resultado que la gráfica muestra el ángulo y la distancia de los puntos desde el origen. También podemos trazar múltiples líneas de datos en un solo gráfico usando la función polarplot().

Tenemos que pasar datos para cada línea como una columna en las matrices, y la función polarplot() trazará la primera columna de la primera matriz con la primera columna de la segunda matriz y así sucesivamente. Podemos usar un vector para esa dimensión si queremos usar el mismo valor para una dimensión, como la distancia o el ángulo.

Por ejemplo, tracemos varias líneas en el mismo gráfico polar usando un vector y una matriz. Vea el código a continuación.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho1 = sin(2*My_theta).*cos(2*My_theta);
My_rho2 = cos(2*My_theta).*cos(2*My_theta);
My_rho = [My_rho1; My_rho2];
polarplot(My_theta,My_rho)
legend('data1','data2')

Producción:

gráfico polar de un vector y matriz

En el código anterior, creamos dos vectores para el radio, luego los almacenamos en una matriz como dos filas, y la función polarplot() trazó las dos filas contra el mismo vector de ángulo. Usamos la función legend() para agregar leyendas a la trama de acuerdo con los datos.

Podemos ver en la salida que hay dos líneas en el diagrama polar con diferentes colores porque la función polarplot() le da a cada conjunto de datos un color diferente para que sea fácil distinguirlos. Por defecto, el ángulo está en grados, pero también podemos convertirlo en radianes usando la función deg2rad() de Matlab.

También podemos crear un gráfico polar usando un solo vector que definirá el radio de los puntos desde el origen usando la función polarplot(). La función trazará los puntos del radio contra el ángulo tomado del intervalo 0 a 2pi en intervalos iguales.

También podemos establecer las especificaciones de la línea, como el estilo de línea, el marcador y el color. Podemos pasar los tres argumentos dentro de una sola cadena y pasarla dentro de la función polarplot() para cambiar las especificaciones de línea.

Podemos establecer el estilo de línea en una línea sólida con el carácter -, línea discontinua con el carácter --, línea punteada con el carácter : y línea punteada usando el carácter -.. El marcador se colocará encima de los puntos de datos, y podemos configurarlos usando símbolos como o para el círculo, * para el asterisco, d para el diamante, p para el pentagrama, h para el hexagrama, etc.

Podemos establecer el color de la línea utilizando el nombre del color o la primera letra del color, como r para rojo, g para verde, etc. Por ejemplo, cambiemos las especificaciones de línea de un diagrama polar usando una sola cadena.

Vea el código a continuación.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,':*g')

Producción:

cambiando las especificaciones de la línea

En el código anterior, usamos la cadena :*g para cambiar las especificaciones de línea en las que el primer carácter establece el estilo de línea con puntos, el segundo carácter establece el marcador en asterisco y el tercer carácter establece el color de línea en verde.

Tenga en cuenta que si hemos trazado más de un conjunto de datos en el gráfico, las especificaciones de línea cambiarán las especificaciones de todas las líneas presentes en el gráfico y puede resultar difícil distinguir entre los conjuntos de datos o las líneas.

También podemos cambiar las propiedades de la trama usando el par nombre-valor en el que tenemos que pasar el nombre de la propiedad como una cadena, y luego tenemos que pasar su valor para cambiar esa propiedad. Podemos cambiar las propiedades del Color, LineStyle, LineWidth, Marker, MarkerSize y MarkerFaceColor.

La propiedad Color establece el color de la línea, y podemos pasar un valor de triplete RGB, un código de color hexadecimal, el nombre del color o la primera letra del nombre del color. La propiedad LineStyle establece el estilo de la línea, y los estilos de línea disponibles se describen anteriormente.

La propiedad LineWidth establece el ancho de la línea y, por defecto, su valor está establecido en 0.5, pero también podemos configurarlo en cualquier número positivo. La propiedad Marcador establece el marcador utilizado en la parte superior de los puntos de datos y, de forma predeterminada, su valor se establece en ninguno, pero podemos establecerlo utilizando los símbolos de marcador discutidos anteriormente.

La propiedad MarkerSize se usa para establecer el tamaño del marcador y, por defecto, su valor se establece en 6, que podemos cambiar a cualquier valor positivo. La propiedad MarkerFaceColor establece el color de relleno del marcador, o en otras palabras, llenará los marcadores utilizados en el gráfico y, por defecto, su valor está establecido en ninguno, pero podemos configurarlo en cualquier color usando su triplete RGB valor, código hexadecimal o nombre de color.

Por ejemplo, cambiemos las propiedades mencionadas anteriormente. Vea el código a continuación.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,'Color','red','LineStyle',':','Marker','o','LineWidth',2,'MarkerSize',10,'MarkerFaceColor','green')

Producción:

cambiar las propiedades de la trama

También podemos agregar ejes personalizados al gráfico agregándolos como primer argumento dentro de la función polarplot(). También podemos establecer las propiedades de los ejes, como el color de la línea del radio y el texto, las etiquetas de los ejes, etc.

Tenemos que obtener los ejes actuales usando el comando gca, y luego podemos usar estos ejes para cambiar las propiedades de los ejes. Tenemos que agregar un punto después del objeto de los ejes, luego agregar el nombre de la propiedad y luego podemos establecer el valor de la propiedad después de un signo igual.

Por ejemplo, cambiemos el color de la línea del radio en un gráfico polar. Vea el código a continuación.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)
x = gca;
x.RColor = 'red';

Producción:

cambiar las propiedades de los ejes

Consulte este enlace para obtener más detalles sobre las propiedades de los ejes polares.

Gráfico polar 3D en MATLAB

Si queremos crear un gráfico polar en un plano 3D, tenemos que cambiar las coordenadas polares a coordenadas cartesianas porque las coordenadas polares tienen solo dos dimensiones y necesitamos tres dimensiones para crear un gráfico 3D.

Podemos usar la función pol2cart() para convertir las coordenadas polares a coordenadas cartesianas y luego usar la función surf() para crear un gráfico de superficie en un plano 3D. El algoritmo utilizado para convertir coordenadas polares a coordenadas cartesianas se muestra en la siguiente imagen.

polar 2 cartesiano

Por ejemplo, vamos a convertir las coordenadas polares de un gráfico polar a cartesiano y crear un gráfico 3D usando la función surf(). Vea el código a continuación.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = sin(My_theta);
t = meshgrid(linspace(0,2*pi,63));
[x,y,z] = pol2cart(My_theta, My_rho, t);
surf(x,y,z)

Producción:

parcela de superficie

En el código anterior, usamos tres entradas en la función pol2cart(). La primera entrada es el vector de ángulos, la segunda es el vector de la distancia de los puntos desde el origen y la tercera matriz es la cuadrícula en la que queremos crear el gráfico 3D.

El gráfico anterior no está relacionado con un gráfico polar porque no tenemos las dimensiones del ángulo y el radio en el gráfico anterior.

En un gráfico polar, podemos ver el ángulo y el radio de un punto con respecto al origen, pero en el gráfico anterior, esto no es posible. No es necesario crear un diagrama polar 3D cuando solo queremos obtener información sobre el ángulo y el radio de un punto; podemos usar la función polarplot() para un gráfico polar 2D.

Consulta este enlace para más detalles sobre la función polarplot(). Consulta este enlace para más detalles sobre la función surf() utilizada para crear gráficos en 3D.

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