Sto provando a creare una funzione di stampa che prende come input il numero di grafici richiesti e li stampa utilizzando pylab.subplots
e l'opzione sharex=True
. Se il numero di grafici richiesti è dispari, desidero rimuovere l'ultimo pannello e forzare le etichette di spunta sul pannello proprio sopra di esso. Non riesco a trovare un modo per farlo e usare l'opzione sharex=True
allo stesso tempo. Il numero di sottotrame può essere abbastanza grande (> 20).matplotlib con numero dispari di sottotrame
Ecco il codice di esempio. In questo esempio voglio forzare le etichette xtick quando i=3
.
import numpy as np
import matplotlib.pylab as plt
def main():
n = 5
nx = 100
x = np.arange(nx)
if n % 2 == 0:
f, axs = plt.subplots(n/2, 2, sharex=True)
else:
f, axs = plt.subplots(n/2+1, 2, sharex=True)
for i in range(n):
y = np.random.rand(nx)
if i % 2 == 0:
axs[i/2, 0].plot(x, y, '-', label='plot '+str(i+1))
axs[i/2, 0].legend()
else:
axs[i/2, 1].plot(x, y, '-', label='plot '+str(i+1))
axs[i/2, 1].legend()
if n % 2 != 0:
f.delaxes(axs[i/2, 1])
f.show()
if __name__ == "__main__":
main()