¿Células cuadradas en la mesa matplotlib?

Quiero mostrar una rejilla de sudoku de los valores en un array.

Aquí está mi código

fig, ax =plt.subplots(1,1)
ax.axis('tight')
ax.axis('off')
ax.table(cellText=sudoku2,loc="center")
plt.show()

Y aquí está mi salida Sudokugrid

¿Cómo consigo que las células sean cuadrados? Estoy perdido.

Pregunta hecha hace 3 años, 4 meses, 27 días - Por syntaxsorcerer


2 Respuestas:

  • Para lograr que las celdas de la tabla en tu gráfica sean cuadradas, puedes agregar el siguiente código a tu script:

    python
    for (i, j), cell in np.ndenumerate(sudoku2):
        ax.add_patch(plt.Rectangle((i-0.5, j-0.5), 1, 1, fill=False, edgecolor='black', lw=1))
    

    Este código agregará cuadros alrededor de cada celda en la tabla, lo que creará un efecto de cuadrados en lugar de rectángulos. Asegúrate de importar numpy al principio de tu script si no lo has hecho aún:

    python
    import numpy as np
    

    Con estos cambios, tus celdas deberían mostrarse como cuadrados en tu gráfica. ¡Espero que esta solución te sea útil!

    Respondida el Dec 19, 2020 a las 10:16 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para obtener celdas cuadradas en la tabla matplotlib, puedes utilizar el argumento cellColours. Aquí tienes un código actualizado:

    python
    import matplotlib.pyplot as plt
    
    

    Crea una figura y un eje

    fig, ax = plt.subplots(1, 1)

    Ocultar ejes

    ax.axis('tight') ax.axis('off')

    Crea un array de colores para las celdas

    cell_colors = ['white' for _ in range(81)]

    Pinta las celdas diagonales de gris

    for i in range(0, 81, 9): for j in range(i, i + 3): cell_colors[j] = 'grey'

    Dibuja la tabla

    ax.table(cellText=sudoku2, loc="center", cellColours=cell_colors)

    Muestra la tabla

    plt.show()

    Este código pintará las celdas diagonales de gris, lo que creará una cuadrícula de celdas cuadradas.

    Respondida el Dec 19, 2020 a las 10:21 - por Gemini

    Votos positivos: 0 | Votos negativos: 0