ylabel xlabel titles tag and achsenbeschriftung matlab

xlabel - title graphics matlab



Girando el eje y al revés en MATLAB (5)

Como alternativa a YDir (por alguna razón que actualmente no puedo ver) puede rotar los ejes con la view . Para voltear el eje y al revés, usa

view(0,-90);

¿Hay alguna manera de invertir el eje y en los gráficos de matlab, de modo que la dirección positiva del eje y, en lugar de hacia arriba, apunte hacia abajo?

(Te lo ruego, por favor no digas, imprímelo, luego da vuelta el periódico ;-)


El comando

axis ij

También invertirá el eje Y (negativo por encima del eje x; positivo por debajo).


Las soluciones en la parte superior de la pila no funcionaron para mí,

  • imagesc(x,y,data) % results in a flipped plot, the y axis is upside down

  • set(gca,''YDir'',''reverse''); % gives an error

  • axis ij; % still gives the flipped plot

lo que funcionó fue lo siguiente:

imagesc(x,y,data); axis xy; % results in the correct plot

La propiedad YDir ha desvanecido en la versión de matlab (2013 y posteriores) que estoy usando.


Para actualizar esta respuesta, ya que sigue siendo un resultado popular de Google: a partir del R2014a, la forma correcta de voltear el eje Y es la siguiente:

>> axis ij

Este cambio se puede revertir a través del siguiente comando

>> axis ji

Para voltear los ejes X o Z, haga lo siguiente

set(gca,''XDir'',''reverse'');

set(gca,''ZDir'',''reverse'');

Personalmente, creo que hubiera sido más fácil mantener la opción YDir, pero qué sé.


La ''YDir'' ejes ''YDir'' 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 de image o de image .

Puede establecer la dirección del eje y de un eje con la función set o la indexación de puntos (en las versiones más nuevas de MATLAB):

h = gca; % Handle to currently active axes set(h, ''YDir'', ''reverse''); % or... h.YDir = ''reverse'';

Estoy desconcertado por algunas de las otras respuestas que dicen que la propiedad ''YDir'' alguna manera ha desaparecido o está dando un error. No he visto ningún comportamiento similar en las versiones de MATLAB de 2013, 2014 o 2016. Solo hay dos dificultades potenciales que encontré:

  • La propiedad no se puede establecer con una matriz de celdas, solo 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 usar indistintamente como un identificador cuando se realiza la indexación de puntos (por eso primero la guardé en 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''

Finalmente, si quiere un código que alternará la propiedad ''YDir'' sin importar cuál sea su estado actual, puede hacer esto:

set(gca, ''YDir'', char(setdiff({''normal'', ''reverse''}, get(gca, ''YDir'')))); % or... h = gca; h.YDir = char(setdiff({''normal'', ''reverse''}, h.YDir));