Estoy haciendo un grupo de subtrama (digamos, 3 x 2) en matplotlib, pero tengo menos de 6 conjuntos de datos. ¿Cómo puedo dejar en blanco el resto de la subparcela?
El arreglo se ve así:
+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+
Esto puede durar varias páginas, pero en la página final, hay, por ejemplo, 5 conjuntos de datos para el cuadro 2,1 estará vacío. Sin embargo, he declarado la figura como:
cfig,ax = plt.subplots(3,2)
Entonces, en el espacio para la subparcela 2,1 hay un conjunto predeterminado de ejes con marcas y etiquetas. ¿Cómo puedo dejar ese espacio en blanco y sin ejes mediante programación?
fuente
add_subplot()
desorden.Se ha agregado una interfaz de subtrama muy mejorada a matplotlib desde que se hizo esta pregunta por primera vez. Aquí puede crear exactamente las subtramas que necesita sin ocultar los extras. Además, las subtramas pueden abarcar filas o columnas adicionales.
import pylab as plt ax1 = plt.subplot2grid((3,2),(0, 0)) ax2 = plt.subplot2grid((3,2),(0, 1)) ax3 = plt.subplot2grid((3,2),(1, 0)) ax4 = plt.subplot2grid((3,2),(1, 1)) ax5 = plt.subplot2grid((3,2),(2, 0)) plt.show()
fuente
También es posible ocultar una subtrama utilizando el método Axes.set_visible ().
import matplotlib.pyplot as plt import pandas as pd fig = plt.figure() data = pd.read_csv('sampledata.csv') for i in range(0,6): ax = fig.add_subplot(3,2,i+1) ax.plot(range(1,6), data[i]) if i == 5: ax.set_visible(False)
fuente
¿Sería una opción crear las subtramas cuando las necesite?
import matplotlib matplotlib.use("pdf") import matplotlib.pyplot as plt plt.figure() plt.gcf().add_subplot(421) plt.fill([0,0,1,1],[0,1,1,0]) plt.gcf().add_subplot(422) plt.fill([0,0,1,1],[0,1,1,0]) plt.gcf().add_subplot(423) plt.fill([0,0,1,1],[0,1,1,0]) plt.suptitle("Figure Title") plt.gcf().subplots_adjust(hspace=0.5,wspace=0.5) plt.savefig("outfig")
fuente