Come posso modificare la dimensione della figura con i grafici secondari?


287

Mi sono imbattuto in questo esempio nel sito Web Matplotlib. Mi chiedevo se fosse possibile aumentare le dimensioni della figura.

Ci ho provato

f.figsize(15,15)

ma non fa nulla.

Risposte:


529

Se hai già l'oggetto figura usa:

f.set_figheight(15)
f.set_figwidth(15)

Ma se usi il comando .subplots () (come negli esempi che stai mostrando) per creare una nuova figura puoi anche usare:

f, axs = plt.subplots(2,2,figsize=(15,15))

12
c'è anche fig.set_size_inchesda impostare altezza e larghezza insieme
Francesco Montesano

1
Questo non funziona, puoi impostare l'altezza come vuoi, ma non sarà mai più grande del tuo monitor.

2
Questo non deve fare nulla con il tuo monitor. Cosa succede se si esegue l'output su un png? Stai dicendo che non può mai essere più grande della risoluzione dello schermo? È la combinazione di dimensioni in pollici con il dpi che determina le dimensioni in pixel.
Rutger Kassies l'

incluso figsize nella chiamata a sottotrame () non sembra funzionare. chiamare f.set_figheight, tuttavia, funziona.
Vicki B,

È possibile modificare la dimensione della sottotrama stessa senza cambiare la figura?
Alexis.Rolland,

38

In alternativa, crea un figure()oggetto usando l' figsizeargomento e poi usa add_subplotper aggiungere i tuoi sottotrame. Per esempio

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

Esempio semplice

I vantaggi di questo metodo sono che la sintassi è più vicina alle chiamate subplot()invece che subplots(). Ad esempio, le sottotrame non sembrano supportare l'utilizzo di a GridSpecper controllare la spaziatura delle sottotrame, ma entrambi subplot()e lo add_subplot()fanno.


10
Qualche possibilità di aggiungere 'dimensioni' a ax e ax2 separatamente?
M. Gopal,

2
Se ho capito bene vuoi impostare la dimensione relativa dei due assi? In questo caso, credo che siete in cerca di questa domanda: stackoverflow.com/questions/10388462/...
aquirdturtle
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.