Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

quiver

Gráfica de vectores o de campos vectoriales

  • Cartesian grid with plotted arrows

Descripción

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.

ejemplo

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.

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.

ejemplo

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.

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.

ejemplo

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 del origen 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

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)

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

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')

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')

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

[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 = '.';

Argumentos de entrada

contraer todo

Coordenadas x de los orígenes 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 x de los orígenes 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 no negativo 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.

Utilice el factor de escalado automático para ajustar 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': utiliza el valor AutoScaleFactor como multiplicador secundario para escalar la longitud de las flechas para que se ajusten a los datos de las coordenadas definidos dentro de la cuadrícula, así como escalar las flechas para que no se superpongan.

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

Factor de escalado automático, especificado como escalar. El factor de escalado automático es un multiplicador que ajusta las magnitudes de las flechas si la propiedad AutoScale es "on". Por ejemplo, un valor de 2 dobla la longitud de las flechas y un valor de 0.5 reduce a la mitad la longitud de las flechas.

Nota

  • Esta propiedad no tiene efecto si la propiedad AutoScale se establece en "off".

  • Ajustar la propiedad AutoScaleFactor actualiza la propiedad ScaleFactor.

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