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.

Gráfica de Python Matplotlib: Establecer relación de aspecto del archivo de salida (p.ej. jpg)

Estoy intentando establecer la relación de aspecto de un gráfico pero incluyendo el título y las etiquetas de los ejes. Sé que figsize se refiere solo al eje. Ya intenté con plt.tightlayout, plt.subplotsadjust y fig.setsizeinches, pero ninguno funciona para mi problema. También traté de aumentar la relación de aspecto de entrada, probando si la relación de aspecto de salida sigue una regla.

Aquí hay un ejemplo mínimo y reproducible:

Finalmente, necesito un archivo de salida .jpg que sea de 320mm x 70mm (ancho x alto). Por lo tanto, la relación de aspecto debería ser de 320/70 = 4,57. Como actualmente figsize se refiere solo al eje, la relación de aspecto cambia en la salida a 1960px/523px = 3,75. Mi objetivo es tener una relación de aspecto de salida de 4,57.

“`import matplotlib.pyplot as plt
fig = plt.figure(figsize=[320/25.4, 70/25.4])
ax = fig.add<em>axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
ax.set</em>title('Título', loc='izquierda', fontdict=dict(fontsize=20, fontweight='negrita'))

plt.show()

plt.savefig('ejemplo.jpg', dpi=150, bbox_inches="tight")“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para establecer la relación de aspecto de una gráfica incluyendo el título y las etiquetas de los ejes, se puede utilizar el método subplots_adjust para ajustar el espacio alrededor de la gráfica. Aquí se muestra un código de ejemplo actualizado:

    import matplotlib.pyplot as plt
    fig, ax = plt.subplots(figsize=[320/25.4, 70/25.4])
    langs = ['C', 'C++', 'Java', 'Python', 'PHP']
    students = [23,17,35,29,12]
    ax.bar(langs,students)
    ax.set_title('Título', loc='left', fontdict=dict(fontsize=20, fontweight='bold'))
    fig.subplots_adjust(left=0.1, bottom=0.2, right=0.95, top=0.7) 
    plt.savefig('ejemplo.jpg', dpi=150)
    

    En este código, se utiliza subplots_adjust para establecer los márgenes izquierdo, inferior, derecho y superior de la gráfica, lo que determina el tamaño de la gráfica incluyendo el título y las etiquetas de los ejes. La relación de aspecto de la salida debería ser de 4.57 como se desea.

Comments are closed.