如何在 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 來完成的。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn