vertical una tamaño linea graficos grafico graficas grafica fijar escala ejes como cambiar ajustar python matplotlib axes subplot

una - linea vertical python



¿Cómo puedo hacer una subtrama en blanco en matplotlib? (4)

¿Sería una opción crear las subtramas cuando las necesites?

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")

Estoy haciendo un grupo de subtramas (por ejemplo, 3 x 2) en matplotlib, pero tengo menos de 6 conjuntos de datos. ¿Cómo puedo hacer que la subtrama restante quede en blanco?

La disposición se ve así:

+----+----+ | 0,0| 0,1| +----+----+ | 1,0| 1,1| +----+----+ | 2,0| 2,1| +----+----+

Esto puede continuar durante varias páginas, pero en la página final, hay, por ejemplo, 5 conjuntos de datos en el cuadro 2,1 que estarán vacíos. Sin embargo, he declarado la figura como:

cfig,ax = plt.subplots(3,2)

Entonces en el espacio para la subtrama 2.1 hay un conjunto predeterminado de ejes con ticks y etiquetas. ¿Cómo puedo convertir programáticamente ese espacio en blanco y desprovisto de ejes?


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()


Siempre puedes esconder los ejes que no necesitas. Por ejemplo, el siguiente código gira completamente del 6º eje:

import matplotlib.pyplot as plt hf, ha = plt.subplots(3,2) ha[-1, -1].axis(''off'') plt.show()

y los resultados en la siguiente figura:

Alternativamente, vea la respuesta aceptada a la pregunta Ocultar texto del eje en parcelas matplotlib para una forma de mantener los ejes pero ocultando todas las decoraciones de los ejes (p. Ej., Las marcas y las etiquetas).


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)