python istogramma - Come si modifica la dimensione delle figure disegnate con Matplotlib?




7 Answers

figure ti dice la firma della chiamata:

from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

figure(figsize=(1,1)) creerebbe un'immagine da pollici per pollice, che sarebbe 80 per 80 pixel a meno che non si fornisca anche un argomento dpi diverso.

title plt

Come si modifica la dimensione della figura disegnata con matplotlib?




Nota di cancellazione:
Secondo la guida ufficiale di Matplotlib , l'uso del modulo pylab non è più raccomandato. Per favore considera di usare il modulo matplotlib.pyplot invece, come descritto da questa altra risposta .

Quanto segue sembra funzionare:

from pylab import rcParams
rcParams['figure.figsize'] = 5, 10

Questo rende la larghezza della figura di 5 pollici e la sua altezza di 10 pollici .

La classe Figure quindi usa questo come valore predefinito per uno dei suoi argomenti.




UTILIZZO di plt.rcParams

Esiste anche questa soluzione alternativa nel caso in cui si desideri modificare le dimensioni senza utilizzare l'ambiente figure. Quindi nel caso tu stia usando plt.plot() per esempio.

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

Questo è molto utile quando si esegue la trama in linea (ad es. Con IPython Notebook).

Conversione a cm

La tupla di figsize accetta i pollici quindi se vuoi impostarla in centimetri devi dividerli per 2,54 per dare un'occhiata a questa domanda .




Nel caso tu stia cercando un modo per cambiare la dimensione della figura in Panda, potresti fare ad esempio:

df['some_column'].plot(figsize=(10, 5))

dove df è un dataframe di Pandas. Se si desidera modificare le impostazioni predefinite, è possibile effettuare le seguenti operazioni:

import matplotlib

matplotlib.rc('figure', figsize=(10, 5))



Puoi semplicemente usare (da matplotlib.figure.Figure ):

fig.set_size_inches(width,height)

A partire da Matplotlib 2.0.0, le modifiche alla tela saranno immediatamente visibili, poiché la parola chiave forward assume come valore predefinito True .

Se vuoi semplicemente modificare la larghezza o l' altezza anziché entrambe, puoi usare

fig.set_figwidth(val) o fig.set_figheight(val)

Questi aggiorneranno anche immediatamente il tuo canvas, ma solo in Matplotlib 2.2.0 e successivi.

Per le versioni precedenti

Devi specificare forward=True esplicitamente per aggiornare la tua tela in versioni precedenti rispetto a quanto specificato sopra. Notare che le funzioni set_figwidth e set_figheight non supportano il parametro forward nelle versioni precedenti a Matplotlib 1.5.0.




Questo funziona bene per me:

from matplotlib import pyplot as plt
F = gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True)#Set forward to True to resize window along with plot in figure.
plt.show() #or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array

Questo potrebbe anche aiutare: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html




Questo ridimensiona immediatamente la figura anche dopo che la figura è stata disegnata (almeno usando Qt4Agg / TkAgg - ma non MacOSX - con matplotlib 1.4.0):

matplotlib.pyplot.get_current_fig_manager().resize(width_px, height_px)



Related

python graph matplotlib plot visualization