Contenido principal

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.

yyaxis

Crear gráfica con dos ejes y

Descripción

yyaxis left activa el lado de los ejes actuales asociado al eje y izquierdo. Los comandos de gráficas posteriores se dirigen al lado izquierdo. Si los ejes actuales no incluyen dos ejes y, este comando añade un segundo eje y. Si no hay ejes, este comando los crea en primer lugar.

ejemplo

yyaxis right activa el lado de los ejes actuales asociado al eje y derecho. Los comandos de gráficas posteriores se dirigen al lado derecho.

yyaxis(ax,___) especifica el lado activo para los ejes ax en lugar de los ejes actuales. Si los ejes no incluyen dos ejes y, este comando añade un segundo eje y. Especifique los ejes como primer argumento de entrada. Use comillas simples alrededor de 'left' y 'right'.

ejemplo

Ejemplos

contraer todo

Cree ejes con un eje y tanto en el lado izquierdo como en el derecho. Represente un conjunto de datos con respecto al eje y izquierdo. Después, utilice yyaxis right para activar el lado derecho, de modo que las funciones gráficas posteriores se dirijan a él. Represente un segundo conjunto de datos con respecto al eje y derecho y establezca los límites para el eje y derecho.

x = linspace(0,10);
y = sin(3*x);
yyaxis left
plot(x,y)

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])

Figure contains an axes object. The axes object contains 2 objects of type line.

Cree una gráfica con dos ejes y y añada un título y etiquetas de ejes en cada lado.

Cargue la matriz hwydata del archivo de ejemplo accidents.mat. Cree un diagrama de dispersión de la quinta columna de hwydata con respecto al eje y izquierdo. Añada un título y etiquetas de ejes.

load('accidents.mat','hwydata')
ind = 1:51;
drivers = hwydata(:,5);
yyaxis left
scatter(ind,drivers)
title('Highway Data')
xlabel('States')
ylabel('Licensed Drivers (thousands)')

Figure contains an axes object. The axes object with title Highway Data, xlabel States, ylabel Licensed Drivers (thousands) contains an object of type scatter.

Cree un segundo diagrama de dispersión de la séptima columna de hwydata con respecto al eje y derecho. Luego, etiquete el eje y derecho.

pop = hwydata(:,7);
yyaxis right
scatter(ind,pop)
ylabel('Vehicle Miles Traveled (millions)')

Figure contains an axes object. The axes object with title Highway Data, xlabel States, ylabel Vehicle Miles Traveled (millions) contains 2 objects of type scatter.

Represente dos líneas respecto al eje y izquierdo usando el comando hold on.

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1)
hold on
plot(x,yl2)

Represente dos líneas respecto al eje y derecho. El comando hold afecta tanto al eje y izquierdo como al derecho, de modo que no es necesario volver a emitirlo. Después de la representación, vuelva a desactivar hold.

yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1)
plot(x,yr2)
hold off

Elimine el lado izquierdo activándolo y, a continuación, utilizando el comando cla.

yyaxis left
cla

Especifique el esquema de colores de cada lado de los ejes estableciendo el orden de los colores en los dos colores que desea utilizar. A partir de la versión R2019b, puede utilizar la función colororder para establecer el orden de los colores. Después, represente dos líneas respecto al eje y izquierdo y dos líneas respecto al eje y derecho. Añada una leyenda.

colororder({'b','m'})

yyaxis left
y = [1 2; 3 4];
plot(y)

yyaxis right
z = [4 3; 2 1];
plot(z)
legend

Figure contains an axes object. The axes object contains 4 objects of type line.

Controle los colores de las gráficas individuales estableciendo el orden de los colores para cada lado de los ejes.

Represente tres gráficas de barras respecto al lado izquierdo. Utilice un color diferente para cada serie de barras estableciendo el orden de los colores para el lado izquierdo en el orden de colores predeterminado.

yyaxis left
bar(magic(3));
colororder('default')

Represente tres diagramas de dispersión respecto al lado derecho. Utilice un color diferente para cada diagrama de dispersión estableciendo el orden de los colores en un arreglo de los nombres de los colores. También puede especificar los colores utilizando una matriz de tripletes RGB. Después, añada una leyenda.

yyaxis right
scatter([1 2 3],[2 5 2],'filled')
hold on
scatter([1 2 3],[3 4 1],'filled')
scatter([1 2 3],[4 2 4],'filled')
hold off
colororder({'r','b','c'})
legend

Figure contains an axes object. The axes object contains 6 objects of type bar, scatter.

A partir de la versión R2019b, puede mostrar un mosaico de gráficas utilizando las funciones tiledlayout y nexttile. Llame a la función tiledlayout para crear un diseño de gráfica en mosaico de 2 por 1. Llame a la función nexttile para crear los objetos de ejes ax1 y ax2. Añada un segundo eje y a los ejes superiores especificando ax1 como la primera entrada para yyaxis. Si no especifica los ejes, yyaxis añade un segundo eje y a los ejes actuales.

x = linspace(1,10);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
yyaxis(ax1,'left')
plot(ax1,x,sin(x))
yyaxis(ax1,'right')
plot(ax1,x,exp(x))

% Bottom plot
ax2 = nexttile;
plot(ax2,1:10)

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Argumentos de entrada

contraer todo

Ejes objetivo, especificados como objeto Axes. Si no especifica un objeto Axes, yyaxis utiliza los ejes actuales.

Limitaciones

  • Cuando se trabaja con dos ejes y, no se puede:

    • Rotar los ejes (solo vista 2D).

    • Fijar anotaciones.

    • Copiar el objeto de ejes utilizando copyobj.

Sugerencias

  • Para determinar qué lado de los ejes está activo, consulte la propiedad YAxisLocation para el objeto Axes. La propiedad se establece en 'left' cuando el lado izquierdo está activo y en 'right' cuando el lado derecho está activo. La propiedad YAxisLocation para un objeto Axes con dos ejes y es solo de lectura.

  • Para borrar el lado activo, utilice cla. Para borrar ambos lados de los ejes y eliminar el eje y derecho, utilice cla reset. De forma alternativa, puede esperar a borrar ambos lados y eliminar el eje y derecho hasta el próximo comando de representación estableciendo la propiedad NextPlot del objeto Axes en 'replaceall'.

  • La propiedad Children del objeto Axes solo contiene los elementos secundarios para el lado activo. Para acceder a todos los elementos secundarios de ambos lados, utilice la función allchild.

Algoritmos

contraer todo

Historial de versiones

Introducido en R2016a