Rotar etiquetas de eje en Matplotlib

    Introducci贸n

    Matplotlib es una de las bibliotecas de visualizaci贸n de datos m谩s utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalizaci贸n: puede modificar casi cualquier elemento de su jerarqu铆a de objetos.

    En este tutorial, veremos c贸mo rotar texto / etiquetas de eje en una gr谩fica de Matplotlib.

    Crear una parcela

    Primero creemos una trama simple:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    plt.show()
    

    Rotar etiquetas del eje X en Matplotlib

    Ahora, echemos un vistazo a c贸mo podemos rotar las etiquetas del eje X aqu铆. Hay dos formas de hacerlo: c谩mbielo en el nivel de la Figura usando plt.xticks() o c谩mbielo a nivel de ejes usando tick.set_rotation() individualmente, o incluso usando ax.set_xticklabels() y ax.xtick_params().

    Comencemos con la primera opci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    plt.xticks(rotation = 45) # Rotates X-Axis Ticks by 45-degrees
    plt.show()
    

    Aqu铆, hemos configurado el rotation de xticks a 45, lo que significa una inclinaci贸n de 45 grados, en sentido antihorario:

    Nota: Esta funci贸n, como todas las dem谩s aqu铆, debe llamarse despu茅s plt.plot(), no sea que las garrapatas terminen potencialmente cortadas o fuera de lugar.

    Otra opci贸n ser铆a obtener la corriente Axes objeto y llamada ax.set_xticklabels() en eso. Aqu铆 podemos configurar las etiquetas, as铆 como su rotaci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    plt.draw()
    
    ax.set_xticklabels(ax.get_xticks(), rotation = 45)
    
    plt.show()
    

    Nota: Para que este enfoque funcione, deber谩 llamar plt.draw() antes de acceder o configurar las etiquetas X tick. Esto se debe a que las etiquetas se completan despu茅s de que se dibuja el gr谩fico; de lo contrario, devolver谩n valores de texto vac铆os.

    Alternativamente, podr铆amos haber iterado sobre el ticks en el ax.get_xticklabels() lista. Entonces, podemos llamar tick.set_rotation() en cada uno de ellos:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    plt.draw()
    
    for tick in ax.get_xticklabels():
        tick.set_rotation(45)
    plt.show()
    

    Esto tambi茅n resulta en:

    Y finalmente, puedes usar el ax.tick_params() funci贸n y establecer la rotaci贸n de la etiqueta all铆:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    ax.tick_params(axis="x", labelrotation = 45)
    plt.show()
    

    Esto tambi茅n resulta en:

    Rotar etiquetas del eje Y en Matplotlib

    Se pueden aplicar exactamente los mismos pasos para las etiquetas del eje Y.

    En primer lugar, puede cambiarlo a nivel de figura con plt.yticks(), o en Axes-lebel usando tick.set_rotation() o manipulando el ax.set_yticklabels() y ax.tick_params().

    Comencemos con la primera opci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    plt.yticks(rotation = 45)
    plt.show()
    

    Como la 煤ltima vez, esto establece el rotation de yticks por 45 grados:

    Ahora, trabajemos directamente con el Axes objeto:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    plt.draw()
    
    ax.set_yticklabels(ax.get_yticks(), rotation = 45)
    
    plt.show()
    

    La misma nota se aplica aqu铆, tienes que llamar plt.draw() antes de esta llamada para que funcione correctamente.

    Ahora, iteremos sobre la lista de ticksy set_rotation() en cada uno de ellos:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    plt.draw()
    
    for tick in ax.get_yticklabels():
        tick.set_rotation(45)
    plt.show()
    

    Esto tambi茅n resulta en:

    Y finalmente, puedes usar el ax.tick_params() funci贸n y establecer la rotaci贸n de la etiqueta all铆:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.plot(x, y)
    
    ax = plt.gca()
    ax.tick_params(axis="y", labelrotation = 45)
    plt.show()
    

    Esto tambi茅n resulta en:

    Rotar fechas para ajustarlas en Matplotlib

    Muy a menudo, la raz贸n por la que las personas rotan las garrapatas en sus parcelas es porque contienen fechas. Las fechas pueden ser largas e incluso con un conjunto de datos peque帽o, comenzar谩n a superponerse y r谩pidamente se volver谩n ilegibles.

    Por supuesto, puede rotarlos como lo hicimos antes, por lo general, una inclinaci贸n de 45 grados resolver谩 la mayor铆a de los problemas, mientras que una inclinaci贸n de 90 grados liberar谩 a煤n m谩s.

    Sin embargo, hay otra opci贸n para rotar y fijar fechas en Matplotlib, que es incluso m谩s f谩cil que los m茅todos anteriores: fig.autofmt__date().

    Esta funci贸n se puede utilizar como fig.autofmt_xdate() o fig.autofmt_ydate() para los dos ejes diferentes.

    Echemos un vistazo a c贸mo podemos usarlo en el conjunto de datos meteorol贸gicos de Seattle:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    weather_data = pd.read_csv("seattleWeather.csv")
    
    fig = plt.figure()
    plt.plot(weather_data['DATE'], weather_data['PRCP'])
    fig.autofmt_xdate()
    plt.show()
    

    Esto resulta en:

    Conclusi贸n

    En este tutorial, hemos repasado varias formas de rotar el texto / etiquetas de Axis en una gr谩fica de Matplotlib, incluida una forma espec铆fica de formatear y ajustar fechas.

    Si est谩 interesado en la visualizaci贸n de datos y no sabe por d贸nde empezar, aseg煤rese de consultar nuestro libro sobre Visualizaci贸n de datos en Python.

    Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiar谩 a trav茅s de la manipulaci贸n simple de datos con Pandas, cubrir谩 bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrar谩 c贸mo aprovechar las bibliotecas declarativas y experimentales como Altair.

    Visualizaci贸n de datos en Python

    隆Comprenda mejor sus datos con visualizaciones! Con 340 p谩ginas, aprender谩 los entresijos de la visualizaci贸n de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y m谩s.

    .

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *