es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo rotar un subplot 90 grados en matplotlib sin conocer la extensión.

Tengo un subtrama que defino usando add_subplot() con gridspec. Estoy buscando rotar esta trama y su contenido 90 grados, pero no tengo la información sobre el contenido a priori. Esto se debe a que el eje se define como parte de una clase general de Canvas que he construido. Además, no quiero simplemente invertir el contenido de x e y en la llamada a la función ax.plot(y,x), ya que esto introducirá complicaciones más adelante en mi código.

¿Existe alguna forma de rotar de manera confiable los ejes cuando los creo, de manera que cuando llame a ax.plot(x,y), los datos de x estén en el eje vertical y los datos de y en el eje horizontal?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar el método set_rotation para rotar todo el subplot y su contenido en 90 grados. Por ejemplo, si has definido un subplot con add_subplot() y has establecido su posición usando gridspec de esta manera:

    import matplotlib.pyplot as plt
    import matplotlib.gridspec as gridspec
    
    fig = plt.figure()
    gs = fig.add_gridspec(1, 1)
    ax = fig.add_subplot(gs[0])
    

    Luego, puedes rotar el subplot y su contenido llamando a set_rotation:

    ax.set_rotation(90)
    

    Esto rotará todo el subplot y su contenido en 90 grados, de modo que cuando llames a ax.plot(x, y), los datos x estarán en el eje vertical y los datos y en el eje horizontal. Ten en cuenta que las etiquetas de los ejes también se rotarán, por lo que es posible que necesites ajustar su posición o rotación también.

Comments are closed.