如何在 Matplotlib 中绘制一个表格

Suraj Joshi 2020年11月7日
如何在 Matplotlib 中绘制一个表格

我们可以使用 matplotlib.pyplot.table 方法在 Matplotlib 中绘制一个表格。

matplotlib.pyplot.table() 方法

matplotlib.pyplot.table() 语法

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
)

示例: 在 Matplotlib 中使用 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()

输出:

使用 Matplotlib 的简单表格

该方法从 table() 方法中作为 cellText 参数传递的数据生成一个表格。列名可以用 colLabels 参数指定,loc="center"将表格置于各轴的中心。

我们也可以通过 Pandas DataFrameNumPy Arrays 作为 cellText 参数来生成表格。

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()

输出:

使用带有 RowLabels 的 Matplotlib 生成的表格

这个过程从 DataFrame df 生成表格。我们将 df 的值作为 cellText 参数,将 df 的列名作为 colLabels 参数。rowLabels 值作为表的行标签。

为了区分表中的行标签和列标签,要对这些特定字段进行不同的样式。

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()

输出:

样式行标签和列标签表 Matplotlib

在这里,我们将行标签和列标签用黄色来区分这些字段与表的其他部分;这是用参数 rowColourscolColours 来完成的。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn