Cómo dibujar una tabla en Matplotlib

Suraj Joshi 17 diciembre 2020
Cómo dibujar una tabla en Matplotlib

Podemos graficar una tabla en Matplotlib usando el método matplotlib.pyplot.table.

matplotlib.pyplot.table() Método

Sintaxis

matplotlib.pyplot.table(
    cellText=None,
    cellColours=None,
    cellLoc="right",
    colWidths=None,
    rowLabels=None,
    rowColours=None,
    rowLoc="left",
    colLabels=None,
    colColours=None,
    colLoc="center",
    loc="bottom",
    bbox=None,
    edges="closed",
    **kwargs
)

Ejemplos: Trazar una tabla en Matplotlib usando el método matplotlib.pyplot.table()

import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
data = [[1, 2, 3], [5, 6, 7], [8, 9, 10]]
column_labels = ["Column 1", "Column 2", "Column 3"]
ax.axis("tight")
ax.axis("off")
ax.table(cellText=data, colLabels=column_labels, loc="center")

plt.show()

Resultado:

Tabla simple usando Matplotlib

Este método genera una tabla a partir de los datos pasados como el parámetro cellText en el método table(). Los nombres de las columnas pueden ser especificados con el parámetro colLabels, y el loc="center" coloca la tabla en el centro de los respectivos ejes.

También podemos pasar un array de Pandas DataFrame y NumPy como parámetro cellText para generar una tabla.

import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
data = [[1, 2, 3], [5, 6, 7], [8, 9, 10]]
column_labels = ["Column 1", "Column 2", "Column 3"]
df = pd.DataFrame(data, columns=column_labels)
ax.axis("tight")
ax.axis("off")
ax.table(
    cellText=df.values, colLabels=df.columns, rowLabels=["A", "B", "C"], loc="center"
)

plt.show()

Resultado:

Tabla usando Matplotlib con RowLabels

Este proceso genera la tabla del DataFrame df. Pasamos los valores de df como parámetro cellText y los nombres de las columnas de df como colLabels. El valor de rowLabels actúa como una etiqueta para las filas de la tabla.

Para distinguir las etiquetas de las filas y las etiquetas de las columnas de la tabla, estilice esos campos particulares de manera diferente.

import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
data = [[1, 2, 3], [5, 6, 7], [8, 9, 10]]
column_labels = ["Column 1", "Column 2", "Column 3"]
df = pd.DataFrame(data, columns=column_labels)
ax.axis("tight")
ax.axis("off")
ax.table(
    cellText=df.values,
    colLabels=df.columns,
    rowLabels=["A", "B", "C"],
    rowColours=["yellow"] * 3,
    colColours=["yellow"] * 3,
    loc="center",
)

plt.show()

Resultado:

Estilo Row and Column Labels Table Matplotlib

Aquí, estilizamos las etiquetas de fila y las etiquetas de columna con color amarillo para distinguir estos campos del resto de la tabla; esto se hace usando los parámetros, rowColours y colColours.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn