Dal matplotlib documentation:
Se la cifra ha già una sottotrama con chiave (args, kwargs) allora sarà semplicemente rendere corrente che sottotrama e restituirlo.
Ecco un esempio:
import matplotlib.pyplot as plt
fig = plt.figure()
for vplot in [1,2,3]:
ax = fig.add_subplot(3,1,vplot)
ax.plot(range(10),range(10))
ax_again = fig.add_subplot(3,1,2)
ax_again.annotate("The middle one",xy=(7,5),xytext=(7,5))
plt.show()
La trama centrale è di nuovo chiamato in modo che possa essere annotato.
Cosa succede se si imposta lo sfondo con la mia chiamata originale, devo impostarlo nuovamente quando ottengo la sottotrama la seconda volta?
Sì. Gli argomenti e le parole chiave per la chiamata originale vengono utilizzati per creare un identificativo univoco. Quindi, affinché la figura possa generare nuovamente questo identificatore univoco, è necessario passare di nuovo gli stessi argomenti (definizione della griglia, posizione) e parole chiave. Per esempio:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2,1,1,axisbg='red')
ax.plot(range(10),range(10))
ax = fig.add_subplot(2,1,2)
ax.plot(range(10),range(10))
ax_again = fig.add_subplot(2,1,1,axisbg='red')
ax_again.annotate("The top one",xy=(7,5),xytext=(7,5))
plt.show()
Che cosa succede se io usoax_again.change_geometry()
?
Si potrebbe pensare a change_geometry, ad es. da un 312 a un 422, cambierebbe il modo in cui si utilizza add_subplot, ma non lo fa. Sembra che ci sia un bug o un comportamento indefinito quando chiami change_geometry. La chiave univoca generata originariamente utilizzando gli argomenti e le parole chiave, alla prima chiamata add_subplot, non viene aggiornata. Pertanto, se si desidera ripristinare un asse con una chiamata add_subplot, è necessario chiamare add_subplot con gli argomenti e le parole chiave originali. Per maggiori informazioni, seguire questo rapporto problema: https://github.com/matplotlib/matplotlib/issues/429
mia ipotesi per ora è che se si modifica qualsiasi proprietà della sottotrama dopo aver generato con chiamata add_subplot, l'unica non verrà regolata. Quindi, basta usare gli argomenti e le parole chiave originali, e speriamo che funzionerà.
Uomo Ho passato ore a passare quei documenti, ma sono comunque riuscito a trascurare quella parte vitale. Grazie – c00kiemonster
Vorrei aver capito matplotlib dentro e fuori. Farà sicuramente del mio lavoro più facile. Mi ci è voluto un po 'di tempo, e non è affatto facile scoprire questi dettagli dai documenti. Sto provando a vedere se si passano i kwarg nella chiamata iniziale, bisogna passarli esattamente allo stesso modo la seconda volta, come suggeriscono i documenti. Aggiornerò le cose se mi viene in mente qualcosa. – Yann
Quindi risulta che la classe figure ha una funzione membro privata _make_key che '(crea) una chiave hastable con args e kwargs'; questo è usato per identificare la sottotrama (e suppongo che tutti gli assi appartengano a una figura). Quindi sì, è necessario utilizzare esattamente gli stessi argomenti e parole chiave. – Yann