Plotar uma tabela em Matplotlib

Suraj Joshi 6 fevereiro 2021
Plotar uma tabela em Matplotlib

Podemos traçar uma tabela em Matplotlib utilizando o método matplotlib.pyplot.table.

matplotlib.pyplot.table() Método

Sintaxe

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
)

Exemplos: Traçar uma tabela em Matplotlib Utilizando o matplotlib.pyplot.table() Método

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:

Tabela simples usando Matplotlib

Este método gera uma tabela a partir dos dados passados como o parâmetro cellText no método table(). Os nomes das colunas podem ser especificados com o parâmetro colLabels, e o parâmetro loc="center" coloca a tabela no centro dos respectivos eixos.

Também podemos passar uma Pandas DataFrame e NumPy array como parâmetro cellText para gerar uma tabela.

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:

Tabela utilizando Matplotlib com RowLabels

Este processo gera a tabela a partir do DataFrame df. Passamos os valores de df como parâmetro cellText e os nomes das colunas de df como colLabels. O valor rowLabels funciona como um rótulo para as linhas da tabela.

Para distinguir os rótulos das linhas e das colunas na tabela, estilo esses campos particulares de forma 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:

Rótulos de Linha e Coluna da Tabela Matplotlib

Aqui, estilizamos as etiquetas das linhas e as etiquetas das colunas com cor amarela para distinguir estes campos do resto da tabela; isto é feito utilizando os parâmetros, rowColours, e colColours.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn