Main Content

yyaxis

Crear gráfica con dos ejes y

Descripción

ejemplo

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.

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.

ejemplo

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

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

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

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

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

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

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)

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

Líneas de cuadrículas

Las líneas de cuadrículas se corresponden con las ubicaciones de marcas de graduación a lo largo del eje y izquierdo.

Colores y estilos de línea

Las gráficas asociadas a un lado concreto de los ejes utilizan el mismo color que el eje y de ese lado. Si un lado contiene múltiples líneas, las líneas alternan entre el orden de estilos de línea. El eje y izquierdo utiliza el primer color en el orden de colores del objeto Axes y el eje y derecho utiliza el segundo color.

Si añade un segundo eje y a un objeto Axes que contiene gráficas, las gráficas existentes y el eje y izquierdo no cambian de color. El eje y derecho utiliza el siguiente color en el orden de colores.

Propiedades de los ejes

Las propiedades de los ejes relacionadas con el eje tienen dos valores. No obstante, MATLAB® solo proporciona acceso al valor del lado activo. Por ejemplo, si el lado izquierdo está activo, la propiedad YLim del objeto Axes contiene los límites del eje y izquierdo. No obstante, si el lado derecho está activo, la propiedad YLim contiene los límites del eje y derecho.

Una excepción es que la propiedad YAxis del objeto Axes contiene un arreglo de dos objetos de regla (uno para cada eje y). Puede utilizar las reglas para acceder a cada eje y sin depender del lado activo. Para ver un ejemplo, consulte Modificar las propiedades de las gráficas con dos ejes y.

Historial de versiones

Introducido en R2016a