¿Cómo limito el tamaño del borde en un gráfico matplotlib?
-
05-07-2019 - |
Pregunta
Estoy haciendo algunos gráficos bastante grandes, y el espacio en blanco en el borde está ocupando muchos píxeles que los datos utilizarían mejor. Parece que el borde crece a medida que crece el gráfico.
Aquí están las agallas de mi código gráfico:
import matplotlib
from pylab import figure
fig = figure()
ax = fig.add_subplot(111)
ax.plot_date((dates, dates), (highs, lows), '-', color='black')
ax.plot_date(dates, closes, '-', marker='_', color='black')
ax.set_title('Title')
ax.grid(True)
fig.set_figheight(96)
fig.set_figwidth(24)
¿Hay alguna manera de reducir el tamaño del borde? ¿Tal vez una configuración en algún lugar que me permita mantener el borde a 2 pulgadas constantes?
Solución
Dado que parece que está utilizando una sola subtrama, es posible que desee omitir add_subplot
e ir directamente a add_axes
. Esto le permitirá dar el tamaño de los ejes (en coordenadas relativas a la figura), para que pueda hacerlo tan grande como desee dentro de la figura. En su caso, esto significaría que su código se vería algo así como
import matplotlib.pyplot as plt
fig = plt.figure()
# add_axes takes [left, bottom, width, height]
border_width = 0.05
ax_size = [0+border_width, 0+border_width,
1-2*border_width, 1-2*border-width]
ax = fig.add_axes(ax_size)
ax.plot_date((dates, dates), (highs, lows), '-', color='black')
ax.plot_date(dates, closes, '-', marker='_', color='black')
ax.set_title('Title')
ax.grid(True)
fig.set_figheight(96)
fig.set_figwidth(24)
Si lo desea, incluso puede poner los parámetros en set_figheight
/ set_figwidth
directamente en la llamada figure ()
.
Otros consejos
Pruebe el subplots_adjust
API:
subplots_adjust (* args, ** kwargs)
fig.subplots_adjust (left = None, bottom = None, right = None, wspace = None, hspace = None)
Actualice los SubplotParams con kwargs (predeterminado en rc donde None) y actualice las ubicaciones de la subtrama