El 'YDir'
axes property puede ser 'normal'
o 'reverse'
. Por defecto es 'normal'
para la mayoría de los trazados, pero algunos trazados lo cambiarán automáticamente a 'reverse'
, como las funciones image
o imagesc
.
Puede establecer la dirección del eje y de un eje, ya sea con la función set
o la indexación de puntos (en las versiones más recientes de MATLAB):
h = gca; % Handle to currently active axes
set(h, 'YDir', 'reverse');
% or...
h.YDir = 'reverse';
Estoy sorprendido por algunas de las otras respuestas diciendo que la 'YDir'
propiedad de alguna manera ha desaparecido o está dando un error. No he visto ningún tipo de comportamiento en las versiones de MATLAB a partir de 2013, 2014 o 2016. Sólo hay dos posibles dificultades que me encontré:
La propiedad no se puede ajustar con una serie de células, sólo se una cadena de caracteres:
>> set(gca, 'YDir', {'reverse'});
Error using matlab.graphics.axis.Axes/set
While setting property 'YDir' of class 'Axes':
Invalid enum value. Use one of these values: 'normal' | 'reverse'.
aunque esto funciona:
set(gca, {'YDir'}, {'reverse'}); % Property name is also a cell array
La función gca
no se puede utilizar indistintamente como un mango cuando se realizan tareas pendientes t de indexación (que es por lo guardado en primer lugar a una variable h
en el ejemplo anterior):
>> gca.YDir
Undefined variable "gca" or class "gca.YDir".
>> gca.YDir = 'reverse' % Creates a variable that shadows the gca function
gca =
struct with fields:
YDir: 'reverse'
Por último, si quieres algo de código que cambiará la propiedad 'YDir'
no importa lo que su estado actual es , usted puede hacer esto:
set(gca, 'YDir', char(setdiff({'normal', 'reverse'}, get(gca, 'YDir'))));
% or...
h = gca;
h.YDir = char(setdiff({'normal', 'reverse'}, h.YDir));
@Rook Por favor, tenga en cuenta la respuesta de Ejo60, que creo que es la mejor respuesta aquí ahora. –