• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

333
Vistas
Subparcela desigual en python

¿Cuál es la mejor manera de crear una matriz de subtrama (3,3) en python con la siguiente captura:

  • la primera columna contiene 3 subparcelas
  • la segunda columna contiene 3 subparcelas
  • la tercera columna contiene 2 subparcelas

Las dos últimas subparcelas deben tener el mismo tamaño. Esto significa que se encontrarán en el medio de la trama del medio para las otras dos columnas.

Intenté hacer esto con gridspec pero no lo logré hasta ahora.

 import numpy as np import matplotlib.pyplot as plt from matplotlib import gridspec # generate some data x = np.arange(0, 10, 0.2) y = np.sin(x) # plot it fig = plt.figure(figsize=(8, 6)) gs = gridspec.GridSpec(3, 3) ax0 = plt.subplot(gs[0]) ax0.plot(x, y) ax1 = plt.subplot(gs[1]) ax1.plot(y, x) ax3 = plt.subplot(gs[3]) ax3.plot(y, x) ax4 = plt.subplot(gs[4]) ax4.plot(y, x) ax6 = plt.subplot(gs[6]) ax6.plot(y, x) ax7 = plt.subplot(gs[7]) ax7.plot(y, x) plt.tight_layout() plt.savefig('grid_figure.png') plt.show()

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No es necesario usar gridspec aquí. Solo agrega las subparcelas donde quieras tenerlas.

 import numpy as np import matplotlib.pyplot as plt from matplotlib import gridspec # generate some data x = np.arange(0, 10, 0.2) y = np.sin(x) # plot it fig = plt.figure(figsize=(8, 6)) ax1= fig.add_subplot(3,3,1) ax2= fig.add_subplot(3,3,2) ax3= fig.add_subplot(3,3,4) ax4= fig.add_subplot(3,3,5) ax5= fig.add_subplot(3,3,7) ax6= fig.add_subplot(3,3,8) ax7= fig.add_subplot(2,3,3) ax8= fig.add_subplot(2,3,6) plt.show()

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar

0

Supongo que su problema es con las dos parcelas en la última fila. Una idea podría ser pensar en la cuadrícula como una cuadrícula (3,6). Utiliza dos columnas para cada parcela en las dos primeras filas y 3 columnas para las dos parcelas en la última fila.

 ax1 = plt.subplot2grid((3, 6), (0, 0), colspan=2) ax2 = plt.subplot2grid((3, 6), (0, 2), colspan=2) ax3 = plt.subplot2grid((3, 6), (0, 4), colspan=2) ax4 = plt.subplot2grid((3, 6), (1, 0), colspan=2) ax5 = plt.subplot2grid((3, 6), (1, 2), colspan=2) ax6 = plt.subplot2grid((3, 6), (1, 4), colspan=2) ax7 = plt.subplot2grid((3, 6), (2, 0), colspan=3) ax8 = plt.subplot2grid((3, 6), (2, 3), colspan=3)
about 3 years ago · Santiago Trujillo Denunciar

0

Respuesta proporcionada como respuesta de la pregunta. Lo siguiente fue escrito por OP:

Gracias @datasailor por la solución. Aquí hay un ejemplo de trabajo:

 import numpy as np import matplotlib.pyplot as plt from matplotlib import gridspec # generate some data x = np.arange(0, 10, 0.2) y = np.sin(x) # plot it fig = plt.figure(figsize=(8, 6)) gs = gridspec.GridSpec(6, 3) ax0 = plt.subplot(gs[0:2,0]) ax0.plot(x, y) ax1 = plt.subplot(gs[2:4,0]) ax1.plot(y, x) ax2 = plt.subplot(gs[4:6,0]) ax2.plot(y, x) ax3 = plt.subplot(gs[0:2,1]) ax3.plot(x, y) ax4 = plt.subplot(gs[2:4,1]) ax4.plot(y, x) ax5 = plt.subplot(gs[4:6,1]) ax5.plot(y, x) ax6 = plt.subplot(gs[0:3,2]) ax6.plot(x, y) ax7 = plt.subplot(gs[3:6,2]) ax7.plot(y, x) plt.tight_layout() plt.savefig('grid_figure.png') plt.show()

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda