python - pyplot - matplotlib xticks
¿Por qué mi xlabel está cortado en mi trama matplotlib? (3)
También puede configurar el relleno personalizado como predeterminado en su $HOME/.matplotlib/matplotlib_rc
siguiente manera. En el siguiente ejemplo, he modificado tanto el margen inferior como el margen exterior inmediato:
# The figure subplot parameters. All dimensions are a fraction of the
# figure width or height
figure.subplot.left : 0.1 #left side of the subplots of the figure
#figure.subplot.right : 0.9
figure.subplot.bottom : 0.15
...
Estoy trazando un conjunto de datos usando matplotlib
donde tengo una xlabel que es bastante "alta" (es una fórmula presentada en TeX que contiene una fracción y por lo tanto tiene la altura equivalente de un par de líneas de texto).
En cualquier caso, la parte inferior de la fórmula siempre se corta cuando dibujo las figuras. Cambiar el tamaño de la figura no parece ayudar, y no he podido descifrar cómo desplazar el eje x "hacia arriba" para dejar espacio para la xlabel. Algo así sería una solución temporal razonable, pero lo que sería bueno sería tener una manera de hacer que matplotlib reconozca automáticamente que la etiqueta está cortada y cambiar el tamaño en consecuencia.
Aquí hay un ejemplo de lo que quiero decir:
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r''$/ln/left(/frac{x_a-x_b}{x_a-x_c}/right)$'')
plt.xlabel(r''$/ln/left(/frac{x_a-x_d}{x_a-x_e}/right)$'')
plt.show()
mientras que puedes ver toda la etiqueta y, la xlabel se corta en la parte inferior.
En el caso de que se trate de un problema específico de la máquina, estoy ejecutando esto en OSX 10.6.8 con matplotlib 1.0.0
Una opción fácil es configurar matplotlib para ajustar automáticamente el tamaño de la gráfica. Funciona perfectamente para mí y no estoy seguro de por qué no está activado de manera predeterminada.
Método 1
Establezca esto en su archivo matplotlibrc
figure.autolayout : True
Consulte aquí para obtener más información sobre cómo personalizar el archivo matplotlibrc: http://matplotlib.org/users/customizing.html
Método 2
Actualice rcParams durante el tiempo de ejecución como este
from matplotlib import rcParams
rcParams.update({''figure.autolayout'': True})
La ventaja de utilizar este enfoque es que su código producirá los mismos gráficos en máquinas configuradas de forma diferente.
Utilizar:
import matplotlib.pyplot as plt
plt.gcf().subplots_adjust(bottom=0.15)
para hacer espacio para la etiqueta.
Editar:
Desde que di la respuesta, matplotlib
ha agregado la función tight_layout()
. Entonces sugiero usarlo:
plt.tight_layout()
debería hacer espacio para la xlabel.