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

如何将Dataframe表格与已有图表并排绘制为子图?

实现图表与DataFrame子图并排展示

你可以通过matplotlib的子图布局结合表格组件,解决单位模板图与metrics数据框并排展示的布局问题,以下是调整后的完整代码:

import matplotlib.pyplot as plt
import pandas as pd

unit_ids = sorting_rec.unit_ids
# 创建1行2列的子图布局,加宽画布以容纳表格内容
fig, (ax_plot, ax_table) = plt.subplots(1, 2, figsize=(22, 8))

# 在第一个子图绘制单位模板
sw.plot_unit_templates(we, unit_ids=unit_ids, ax=ax_plot)
ax_plot.set_title("单位模板图")

# 处理metrics数据:原2行31列横向过宽,转置为31行2列更易阅读
metrics_transposed = metrics.T.reset_index()
metrics_transposed.columns = ["指标", "单位1", "单位2"]

# 在第二个子图嵌入数据表格
table = ax_table.table(cellText=metrics_transposed.values,
                       colLabels=metrics_transposed.columns,
                       loc='center')
# 调整表格字体大小,保证内容清晰
table.auto_set_font_size(False)
table.set_fontsize(9)
# 隐藏表格子图的坐标轴,避免冗余元素干扰
ax_table.axis('off')
ax_table.set_title("单位指标数据")

# 设置全局标题并优化整体布局
plt.suptitle(name, fontsize=12, y=0.02)
plt.tight_layout(rect=[0, 0.05, 1, 1])
plt.savefig(name+"_xx.png", bbox_inches='tight')
plt.show()

关键调整说明:

  • 用plt.subplots(1, 2)创建左右并排的子图结构,通过加宽画布宽度适配表格的横向空间;
  • 转置metrics数据维度,解决原2行31列表格横向过宽、内容挤压的问题;
  • 通过ax.table()在子图中嵌入数据表格,隐藏无用坐标轴并调整字体大小,保证数据可读性;
  • 指定ax参数将spikeinterface的绘图绑定到第一个子图,避免默认占用整个画布。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:50:01