2015-11-04 19 views
7

L'argomento hold viene visualizzato in molte funzioni di stampa, ad esempio plt.fill_between, plt.arrow, plt.axhline (per import matplotlib.pyplot as plt). Non riesco a trovare alcuna documentazione su di esso, tuttavia. Docs seem to only state:Cosa fa l'argomento parola chiave `hold` di matplotlib?

kwargs supplementari: tenere = [true | false] sovrascrive stato di default attesa

Anche questo è un argomento parola chiave difficile da google per ...

+0

@MattDMo il primo risultato è http://matplotlib.org/api/pyplot_api.html, che non spiega nulla. Ma grazie per il commento super costruttivo. – DilithiumMatrix

risposta

5

Sembra essere basato sul tracciamento predefinito di MATLAB, che richiede la chiamata di hold on per aggiungere più di un grafico sullo stesso grafico. Il comportamento predefinito per matplotlib sembra essere per questo è vero, non

import numpy as np 
import matplotlib.pyplot as plt 

x=np.linspace(0,np.pi*2,1000) 
plt.plot(x,np.sin(x),hold=True) 
plt.plot(x,np.sin(x)**2,hold=True) 
plt.show() 

enter image description here

che riporta le due linee nello stesso grafico. Se hold è impostato su false, la chiamata successiva per tracciare sovrascrive il precedente. Ad esempio,

import numpy as np 
import matplotlib.pyplot as plt 

x=np.linspace(0,np.pi*2,1000) 

plt.plot(x,np.sin(x),hold=True) 
plt.plot(x,np.sin(x)**2,hold=False) 
plt.show() 

enter image description here

+3

È solo per me, o Matplotlib avrebbe forse servito molto meglio con un'API Python non orientata agli oggetti piuttosto che con l'API di stato non-Pythonic simile a MATLAB? Chiunque? ** Qualcuno? ** –

+0

No Cecil, non sei solo tu. Non potrei supportarlo di più .... +100 al tuo commento. È una libreria molto potente e in grado di produrre risultati eccellenti, devo ammetterlo, ma con una documentazione davvero sconvolgente prima e una API terribile !! L'ho imparato "nel modo più duro" e sono sicuro di non essere solo. Sarebbe bene con l'API (malata) simile a MATLAB se la documentazione avvisasse e indicasse chiaramente i problemi. Ma la documentazione è solo una pila illeggibile di parametri API ... estremamente difficile da esplorare. – Ariel

3

Da the documentation:

Se hold è True, i comandi di stampa successivi verranno aggiunti agli assi correnti. Quando attesa è False, gli assi attuali e la figura verranno cancellati al successivo comando plot

Il valore di attesa determina se trame future sono disegnate rispetto alla precedente (s), o se il dato viene cancellato prima di disegnare .

Problemi correlati