HOWTO · Matplotlib

Cómo dibujar una tabla en Matplotlib

Este post enseña a trazar una tabla en Matplotlib usando el método matplotlib.pyplot.table().

En esta página

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.