Main Content

quiver

Gráfica de vectores o de campos vectoriales

  • Cartesian grid with plotted arrows

Descripción

ejemplo

quiver(X,Y,U,V) representa flechas con los componentes direccionales U y V en las coordenadas cartesianas especificadas por X e Y. Por ejemplo, la primera flecha se origina en el punto X(1) e Y(1), se extiende horizontalmente según U(1) y se extiende verticalmente según V(1). De forma predeterminada, la función quiver escala las longitudes de las flechas para que no se superpongan.

quiver(U,V) representa flechas con componentes direccionales especificados por U y V en puntos equidistantes.

  • Si U y V son vectores, las coordenadas x de las flechas van de 1 al número de elementos en U y V, y las coordenadas y son todas 1.

  • Si U y V son matrices, las coordenadas x de las flechas van de 1 al número de columnas en U y V, y las coordenadas y de las flechas van de 1 al número de filas en U y V.

ejemplo

quiver(___,scale) ajusta la longitud de las flechas:

  • Si scale es un número positivo, la función quiver ajusta automáticamente las longitudes de las flechas para que no se superpongan y después las estira mediante un factor de scale. Por ejemplo, una scale de 2 dobla la longitud de las flechas y una scale de 0,5 divide por la mitad la longitud de las flechas.

  • Si scale es 'off' o 0, como quiver(X,Y,U,V,'off'), se deshabilita el escalado automático.

ejemplo

quiver(___,LineSpec) define el estilo de la línea, el marcador y el color. Los marcadores aparecen en los puntos especificados por X e Y. Si especifica un marcador mediante LineSpec, quiver no muestra las puntas de las flechas. Para especificar un marcador y mostrar las puntas de las flechas, configure la propiedad Marker.

quiver(___,LineSpec,'filled') rellena los marcadores especificados mediante LineSpec.

quiver(___,Name,Value) especifica las propiedades de las gráficas de campos vectoriales mediante uno o más argumentos de par nombre-valor. Para obtener una lista de las propiedades, consulte Quiver Properties. Especifique los argumentos de par nombre-valor tras el resto de argumentos de entrada. Los argumentos de par nombre-valor se aplican a todas las flechas de la gráfica de campos vectoriales.

ejemplo

quiver(ax,___) crea la gráfica de campos vectoriales en los ejes especificados por ax en lugar de los ejes actuales (gca). El argumento ax puede preceder a cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.

ejemplo

q = quiver(___) devuelve un objeto Quiver. Este objeto es útil para controlar las propiedades de la gráfica de campos vectoriales después de crearla.

Ejemplos

contraer todo

Cargue datos de muestra que representen las corrientes de aire de América del Norte. Seleccione para este ejemplo un subconjunto de los datos.

load('wind','x','y','u','v')
X = x(11:22,11:22,1);
Y = y(11:22,11:22,1);
U = u(11:22,11:22,1);
V = v(11:22,11:22,1);

Cree una gráfica de campos vectoriales del subconjunto que haya seleccionado. Los vectores X e Y representan la ubicación de la base de cada flecha, y U y V representan los componentes direccionales de cada flecha. De forma predeterminada, la función quiver acorta las flechas para que no se superpongan. Llame a axis equal para utilizar longitudes de unidades de datos iguales a lo largo de cada eje. De este modo, la punta de las flechas tendrá la orientación correcta.

quiver(X,Y,U,V)
axis equal

Figure contains an axes object. The axes object contains an object of type quiver.

De forma predeterminada, la función quiver acorta las flechas para que no se superpongan. Deshabilite el escalado automático para que las longitudes de las flechas estén determinadas por U y V estableciendo el argumento scale en 0.

Por ejemplo, busque una cuadrícula de valores de X e Y mediante la función meshgrid. Especifique los componentes direccionales usando estos valores. A continuación, cree una gráfica de campos vectoriales sin escalado automático.

[X,Y] = meshgrid(0:6,0:6);
U = 0.25*X;
V = 0.5*Y;
quiver(X,Y,U,V,0)

Figure contains an axes object. The axes object contains an object of type quiver.

Represente los contornos y el gradiente de la función z=xe-x2-y2. Use la función quiver para representar el gradiente y la función contour para representar los contornos.

En primer lugar, cree una cuadrícula de valores de x e y a una distancia equidistante. Úselos para calcular z. A continuación, busque el gradiente de z especificando el espacio entre los puntos.

spacing = 0.2;
[X,Y] = meshgrid(-2:spacing:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,spacing);

Muestre los vectores del gradiente como una gráfica de campos vectoriales. A continuación, muestre las líneas del contorno en los mismos ejes. Ajuste la visualización para que los vectores del gradiente aparezcan perpendicularmente a las líneas de contorno, llamando a axis equal.

quiver(X,Y,DX,DY)
hold on
contour(X,Y,Z)
axis equal
hold off

Figure contains an axes object. The axes object contains 2 objects of type quiver, contour.

Cree una gráfica de campos vectoriales y especifique un color para las flechas.

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);
U = sin(Y);
V = cos(X);
quiver(X,Y,U,V,'r')

Figure contains an axes object. The axes object contains an object of type quiver.

Cree una cuadrícula de valores de X e Y y dos conjuntos de componentes direccionales de U y V.

[X,Y] = meshgrid(0:pi/8:pi,-pi:pi/8:pi);
U1 = sin(X);
V1 = cos(Y);
U2 = sin(Y);
V2 = cos(X); 

Cree un mosaico de gráficas con dos ejes, ax1 y ax2. Agregue una gráfica de campos vectoriales y un título a cada eje. (Antes de la versión R2019b, use subplot en lugar de tiledlayout y nexttile.)

tiledlayout(1,2)

ax1 = nexttile;
quiver(ax1,X,Y,U1,V1)
axis equal
title(ax1,'Left Plot')

ax2 = nexttile;
quiver(ax2,X,Y,U2,V2)
axis equal
title(ax2,'Right Plot')

Figure contains 2 axes objects. Axes object 1 with title Left Plot contains an object of type quiver. Axes object 2 with title Right Plot contains an object of type quiver.

Cree una gráfica de campos vectoriales y devuelva el objeto quiver. A continuación, suprima la punta de las flechas y añada marcadores de puntos a la base de cada flecha.

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);
U = sin(Y);
V = cos(X);

q = quiver(X,Y,U,V);
q.ShowArrowHead = 'off';
q.Marker = '.';

Figure contains an axes object. The axes object contains an object of type quiver.

Argumentos de entrada

contraer todo

Coordenadas x de las bases de las flechas, especificadas como escalar, vector o matriz.

Si X e Y son vectores, y U y V son matrices, quiver expande X e Y a matrices. En este caso, size(U) y size(V) deben ser iguales a [length(Y) length(X)]. Para obtener más información sobre la expansión de vectores a matrices, consulte meshgrid.

Si X e Y son matrices, X, Y, U y V deben tener el mismo tamaño.

Coordenadas y de las bases de las flechas, especificadas como escalar, vector o matriz.

Si X e Y son vectores, y U y V son matrices, quiver expande X e Y a matrices. En este caso, size(U) y size(V) deben ser iguales a [length(Y) length(X)]. Para obtener más información sobre la expansión de vectores a matrices, consulte meshgrid.

Si X e Y son matrices, X, Y, U y V deben tener el mismo tamaño.

Componentes x de las flechas, especificados como escalar, vector o matriz.

Si X e Y son vectores, size(U) y size(V) deben ser iguales a [length(Y) length(X)].

Si X e Y son matrices, X, Y, U y V deben tener el mismo tamaño.

Componentes y de flechas, especificados como escalar, vector o matriz.

Si X e Y son vectores, size(U) y size(V) deben ser iguales a [length(Y) length(X)].

Si X e Y son matrices, X, Y, U y V deben tener el mismo tamaño.

Estilo de línea, marcador y color, especificados como un vector de caracteres o cadena que contiene símbolos. Los símbolos pueden aparecer en cualquier orden. No es necesario especificar las tres características (estilo de línea, marcador y color).

Si especifica un marcador mediante LineSpec, quiver no muestra las puntas de las flechas. Para especificar un marcador y mostrar las puntas de las flechas, configure la propiedad Marker.

Ejemplo: '--or' es una línea discontinua roja con marcadores circulares

Estilo de líneaDescripciónLínea resultante
"-"Línea continua

Sample of solid line

"--"Línea discontinua

Sample of dashed line

":"Línea de puntos

Sample of dotted line

"-."Línea de puntos y rayas

Sample of dash-dotted line, with alternating dashes and dots

MarcadorDescripciónMarcador resultante
"o"Círculo

Sample of circle marker

"+"Signo más

Sample of plus sign marker

"*"Asterisco

Sample of asterisk marker

"."Punto

Sample of point marker

"x"Cruz

Sample of cross marker

"_"Línea horizontal

Sample of horizontal line marker

"|"Línea vertical

Sample of vertical line marker

"square"Cuadrado

Sample of square marker

"diamond"Rombo

Sample of diamond marker

"^"Triángulo hacia arriba

Sample of upward-pointing triangle marker

"v"Triángulo hacia abajo

Sample of downward-pointing triangle marker

">"Triángulo hacia la derecha

Sample of right-pointing triangle marker

"<"Triángulo hacia la izquierda

Sample of left-pointing triangle marker

"pentagram"Pentagrama

Sample of pentagram marker

"hexagram"Hexagrama

Sample of hexagram marker

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

Sample of the color red

"green""g"[0 1 0]

Sample of the color green

"blue""b"[0 0 1]

Sample of the color blue

"cyan" "c"[0 1 1]

Sample of the color cyan

"magenta""m"[1 0 1]

Sample of the color magenta

"yellow""y"[1 1 0]

Sample of the color yellow

"black""k"[0 0 0]

Sample of the color black

"white""w"[1 1 1]

Sample of the color white

Factor de escalado de flecha, especificado como número positivo u 'off'. De forma predeterminada, la función quiver escala automáticamente las flechas para que no se superpongan. La función quiver aplica el factor de escalado después de escalar automáticamente las flechas.

Especificar scale es lo mismo que establecer la propiedad AutoScaleFactor del objeto de gráfica de campos vectoriales. Por ejemplo, especificar scale como 2 dobla la longitud de las flechas. Especificar scale como 0.5 reduce a la mitad la longitud de las flechas.

Para deshabilitar el escalado automático, especifique scale como 'off' o 0. Si especifica uno de estos valores, la propiedad AutoScale del objeto de gráfica de campos vectoriales se establece en 'off' y la longitud de la flecha se determina completamente mediante U y V.

Ejes objetivo, especificados como objeto Axes. Si no especifica los ejes, la función quiver utiliza los ejes actuales.

Argumentos de par nombre-valor

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'Color','r','LineWidth',1

Nota

Las propiedades que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Quiver Properties.

Anchura de la punta y del cuerpo de la flecha, especificada como valor escalar numérico mayor que cero en unidades de punto. Un punto equivale a 1/72 pulgadas. El valor predeterminado es 0.5 puntos.

Ejemplo: 0.75

Visualización de la punta de la flecha, especificada como 'on' u 'off', o como 1 (true) o 0 (false) numérico o lógico. Un valor de 'on' equivale a true, y 'off' equivale a false. En consecuencia, puede utilizar el valor de esta propiedad como valor lógico. El valor se guarda como valor lógico activado/desactivado del tipo matlab.lang.OnOffSwitchState.

  • 'on': muestra los vectores con puntas de flecha.

  • 'off': muestra los vectores sin puntas de flecha.

Escalado automático de la longitud de las flechas, especificado como 'on' u 'off', o como 1 (true) o 0 (false) numérico o lógico. Un valor de 'on' equivale a true, y 'off' equivale a false. En consecuencia, puede utilizar el valor de esta propiedad como valor lógico. El valor se guarda como valor lógico activado/desactivado del tipo matlab.lang.OnOffSwitchState.

  • 'on': escala la longitud de las flechas para ajustarse a los datos de las coordenadas definidos mediante una cuadrícula y escalar las flechas para que no se superpongan. La función quiver o quiver3 aplica después el AutoScaleFactor a la longitud de la flecha.

  • 'off': no escala la longitud de las flechas.

Factor de escalado, especificado como escalar. Un valor de 2 dobla la longitud de las flechas. Un valor de 0.5 reduce a la mitad la longitud de las flechas.

Esta propiedad tiene efecto solo si la propiedad AutoScale se establece en 'on'.

Ejemplo: 2

Sugerencias

Para crear una gráfica de campos vectoriales usando coordenadas polares, conviértalas en primer lugar a coordenadas cartesianas mediante la función pol2cart.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

Funciones

Propiedades