Sto provando a creare una figura che consiste in una griglia 2x2, dove in ogni quadrante ci sono 2 sottotrammi sovrapposti verticalmente (cioè una griglia 2x1). Non riesco a capire come ottenere questo, però.Matplotlib - aggiunta di sottotrame a una sottotrama?
Il più vicino che ho ottenuto è l'utilizzo di gridspec e un po 'di codice brutto (vedi sotto), ma poiché gridspec.update(hspace=X)
cambia la spaziatura per tutte le sottotrame non sono ancora dove mi piacerebbe essere.
Idealmente quello che voglio è, usando l'immagine qui sotto come un esempio, diminuire la spaziatura tra le sottotrame all'interno di ogni quadrante, aumentando al contempo la spaziatura verticale tra i quadranti superiore e inferiore (cioè tra 1-3 e 2-4).
C'è un modo per farlo (con o senza usare gridspec)? Quello che avevo inizialmente immaginato è generare ciascuna delle griglie sub-subplot (cioè ogni griglia 2x1) e inserirle nella griglia 2x2 di sottotrame più grande, ma non ho capito come aggiungere una sottotrama a una sottotrama, se c'è persino lontano.
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
plt.figure(figsize=(10, 8))
gs = gridspec.GridSpec(4,2)
gs.update(hspace=0.4)
for i in range(2):
for j in range(4):
ax = plt.subplot(gs[j,i])
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tick_params(which='both', top='off', right='off')
if j % 2 == 0:
ax.set_title(str(i+j+1))
ax.plot([1,2,3], [1,2,3])
ax.spines['bottom'].set_visible(False)
ax.get_xaxis().set_visible(False)
else:
ax.plot([1,2,3], [3,2,1])
perfetto, grazie :) – user3014097