Come ingrandire le trame in linea in Notebook Jupyter?


264

Ho creato le mie trame in linea sul mio Notebook Ipython con " %matplotlib inline."

Ora appare la trama. Tuttavia, è molto piccolo. C'è un modo per farlo apparire più grande usando le impostazioni del notebook o quelle della trama?

inserisci qui la descrizione dell'immagine

Risposte:


172

Sì, gioca figuresizecosì (prima di chiamare la tua sottotrama):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) per questo caso specifico
Rol

12
Non funziona. La modifica di Figsize nel mio caso cambia solo le proporzioni. La larghezza della cifra totale rimane fissa
Aleksejs Fomins il

Ciò è corretto per numeri troppo grandi per adattarsi alla pagina, quindi il ridimensionamento si interrompe. Può comunque essere utile per modificare le proporzioni come hai notato.
roadrunner66,

1
L'aumento di dpi a '200' fornisce un risultato molto migliore rispetto alla semplice modifica della dimensione della figura.
Adithya Bhat,

Sì, vedi @Hagne di seguito.
roadrunner66,

404

La dimensione predefinita della figura (in pollici) è controllata da

matplotlib.rcParams['figure.figsize'] = [width, height]

Per esempio:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

crea una figura con 10 (larghezza) x 5 (altezza) pollici


7
In realtà, questo è molto più utile come strategia da impostare e dimenticare se tutte le trame sono dimensionate in modo errato.
ijoseph,

2
Grande. Lottato con la dimensione del grafico a scatole di panda e questo l'ha risolto. Per qualche ragione l' figsize=(x,y)argomento è inefficace in Giove. Tuttavia, la modifica matplob.rcParams, come suggerisci, funziona perfettamente.
0_0 il

30
Assicurati di eseguire questo dopo l' esecuzione %matplotlib inline.
UUT

@uut non è questo il valore predefinito?
Verena Haunschmid,

4
@VerenaHaunschmid in esecuzione %matplotlib inlinedopo aver impostato rcParams sembra sovrascrivere la dimensione della figura di default.
dal

63

L'ho trovato %matplotlib notebook funziona meglio per me che in linea con i notebook Jupyter.

Si noti che potrebbe essere necessario riavviare il kernel se si utilizzava %matplotlib inlineprima.

Aggiornamento 2019: se stai utilizzando Jupyter Lab potresti voler usare %matplotlib widget


5
Forse questo funziona in alcuni casi, ma quando l'ho provato sul mio mi ha dato un'immagine vuota con un frame di dati Panda df.plot(). Ho dovuto tornare a%matplotlib inline
tsando il

8
@tsando Ho riscontrato un problema in cui il passaggio da %matplotlib inlinea %matplotlib notebooksenza riavviare il kernel produce un output vuoto. Il passaggio da %matplotlib notebooka %matplotlib inlinefunziona benissimo.
SlimCheney,

4
Grazie @SlimCheney, confermo che quello che dici è vero - funziona se riavvii il kernel
tsando

1
Questo sicuramente batte il tentativo di impostare manualmente i componenti di panoramica e zoom
beldaz,

1
non funziona, anche dopo aver riavviato il kernel. Dà un risultato vuoto
Kardi Teknomo,

31

Se vuoi solo che l'immagine della tua figura appaia più grande senza cambiare l'aspetto generale della tua figura, aumenta la risoluzione della figura. La modifica della dimensione della figura come suggerito nella maggior parte delle altre risposte cambierà l'aspetto poiché le dimensioni del carattere non si adattano di conseguenza.

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200

19

La domanda riguarda matplotlib , ma per il bene di tutti gli utenti R che finiscono qui dato il titolo agnostico:

Se stai usando un kernel R, basta usare:

options(repr.plot.width=4, repr.plot.height=3)

11

Per regolare la dimensione di una figura:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

Per modificare le impostazioni predefinite, e quindi tutte le tue trame:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]

1

Un dettaglio piccolo ma importante per regolare le dimensioni della figura su base una tantum (come molti commentatori sopra hanno riportato "questo non funziona per me"):

Dovresti fare plt.figure (figsize = (,)) PRIMA per definire la tua trama reale. Per esempio:

Questo dovrebbe dimensionare correttamente la trama in base alla tua figura specifica:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Considerando che questo mostrerà la trama con le impostazioni predefinite, sembrando "ignorare" figsize:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
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.