我正在尝试创建一个函数,它可以接收一个Pandas数据框,并为它创建一个matplotlib表格图形。传入的数据框的大小可以从1到25行,因此图形大小需要是通用的。然而,我遇到了一个问题,即图形大小和轴大小与我使用Pandas数据框创建的表格对象的大小不匹配。
到目前为止,我已经尝试了打开和关闭轴,打开和关闭图形和轴的frame属性,拖动表格的宽度和高度并调整图形的大小以匹配表格,以及使用tight_layout()。我还尝试了所有这些不同的解决方案,同时将表格放置在图形的不同位置。
下面是我的代码的当前状态:
def create_table_fig(df):
fig = plt.figure(frameon = False)
table = plt.table(cellText = df.values, colLabels = df.columns, fontsize = 'large', loc = 'lower left')
table.auto_set_column_width(col=list(range(len(df.columns))))
table.set_figure(fig)
plt.close()
return fig
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'Age': [25, 30, 35, 40],
'Salary': [50000, 60000, 70000, 80000]}
df = pd.DataFrame(data)
table = create_table_fig(df)
table
This is what I keep getting:
This is what I'm trying to get:
如果任何人有任何其他的解决方案,我可以尝试,我会非常感激。
1条答案
按热度按时间d7v8vwbk1#
图形的大小使用plt.子图中的figsize参数设置()。图形的高度根据数据框中的行数设置,因此每行的高度为0.4。使用ax.axis关闭轴('off '),并且使用bbox=[0,0,1,1]创建具有跨越整个图的bbox的表。调用plt.tight_layout()来调整表格和图形边缘之间的间距。