2014-12-01 4 views
6

maggior parte degli esempi di object-oriented matplotlib ottenere un oggetto asse con qualcosa di similefig.gca() vs. fig.add_subplot()

import matplotlib.pyplot as plt 

fig1 = plt.figure() 
ax1 = fig1.add_subplot(111) 

ax1.plot(...... etc. 

che ho sempre trovato ad essere non evidente, soprattutto dal una prospettiva matlab. di recente ho scoperto che risultati equivalenti possono essere ottenuti tramite

ax1 = fig1.gca() # "GetCurrentAxis" 

Il che rende molto più senso per me (forse solo per uso prima Matlab). Perché add_subplot() con un confuso argomento scelto come metodo preferito per ottenere un oggetto asse? C'è qualche differenza funzionale?

Grazie!

risposta

12

plt.gca ottiene gli assi correnti, creando uno se necessario. È equivalente solo nel caso 1 più semplice.

Il modo migliore è quello di utilizzare plt.subplots (e le docs/esempi sono davvero in ritardo un po ', se si vuole iniziare a contribuire, aggiornare i documenti è un ottimo punto di partenza):

fig, ax = plt.subplots(1, 1) 

o

fig, (ax1, ax2) = plt.subplots(2, 1) 

e così via.

+0

Grazie! Mi piace molto questo metodo plt.subplots() che mostri - sono solo sorpreso che, essendo il "metodo preferito", non l'ho mai visto prima. È indicato come il modo preferito da qualche parte, o ogni utente ha appena deciso quale tecnica ha più senso per noi? – Demis

+1

Non so esattamente dove si trova nei documenti, ma questa è la mia comprensione del consenso tra gli sviluppatori. – tacaswell

Problemi correlati