You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个列表传入matplotlib的ax.table()函数生成指定列标题的表格?

如何用Matplotlib将两个列表绘制成指定列标题的表格

我明白你的需求:要把data_list_1和data_list_2分别作为两列,配上指定的列标题生成表格。问题出在ax.table()的cellText参数需要的是行式的二维数据,而你现在是两个单独的列列表,直接传肯定不行。下面是解决方法:

完整的可运行代码

import matplotlib.pyplot as plt

# 定义列标题和你的数据
column_headers = ('Question Text', 'Answer Status')
data_list_1 = ['hi', 'name pleas', 'how are you']
data_list_2 = ['answered', 'notanswered', 'answered']

# 创建画布和轴对象(这步你之前漏了,必须先创建ax才能调用table方法)
fig, ax = plt.subplots()

# 把两个列列表转换成行式二维数据:每一行对应一组(问题文本, 回答状态)
table_rows = list(zip(data_list_1, data_list_2))

# 生成表格,指定列标题和行数据
the_table = ax.table(cellText=table_rows, colLabels=column_headers, loc='center')

# 表格美化设置
ax.axis("off")
the_table.set_fontsize(14)
the_table.scale(1.5, 1.5)

plt.show()

核心要点说明

  • 数据格式转换:用zip()函数把两个列列表“配对”成行数据,再转成列表table_rows,这样cellText就能正确识别每一行的两个单元格内容。
  • 补充轴对象创建:你之前的代码里漏了fig, ax = plt.subplots()这一步,没有创建ax对象的话,调用ax.table()会直接报错,这是必须的前置步骤。
  • 表格定位优化:加上loc='center'参数能让表格在画布居中显示,视觉效果更规整。

运行这段代码后,你就能得到第一列显示问题文本、第二列显示回答状态的清晰表格了。

内容的提问来源于stack exchange,提问作者Amal Sailendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:54:34