Come posso limitare la dimensione del bordo su un grafico matplotlib?
-
05-07-2019 - |
Domanda
Sto realizzando alcuni grafici piuttosto grandi e lo spazio bianco nel bordo sta occupando molti pixel che sarebbero meglio utilizzati dai dati. Sembra che il confine cresca man mano che il grafico cresce.
Ecco il coraggio del mio codice grafico:
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)
C'è un modo per ridurre le dimensioni del bordo? Forse un'impostazione da qualche parte che mi consentirebbe di mantenere il bordo a una costante di 2 pollici circa?
Soluzione
Poiché sembra che tu stia utilizzando una sola sottotrama, potresti voler saltare add_subplot
e andare direttamente a add_axes
. Questo ti permetterà di dare la dimensione degli assi (in coordinate relative alla figura), in modo da poterlo ingrandire quanto vuoi all'interno della figura. Nel tuo caso, ciò significherebbe che il tuo codice sarebbe simile a
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)
Se lo desideri, puoi anche mettere i parametri su set_figheight
/ set_figwidth
direttamente nella chiamata figure ()
.
Altri suggerimenti
Prova subplots_adjust
API:
subplots_adjust (* args, ** kwargs)
fig.subplots_adjust (left = None, bottom = None, right = None, wspace = None, hspace = None)
Aggiorna i SubplotParams con kwargs (l'impostazione predefinita è rc where None) e aggiorna le posizioni dei subplot