顶部和底部的白色空间Python matplotlib图

我必须在Python中绘制表格图并将此表保存为jpeg/png。然后在邮件中使用这个图像。问题是我在图表的顶部和底部获得了空白区域。代码我用来实现这一目标:顶部和底部的白色空间Python matplotlib

nrows, ncols = len(df)+1, len(df.columns) 

hcell, wcell = 0.5, 1.5

hpad, wpad = 0, 0

fig, ax = plt.subplots(figsize=(ncols*wcell+wpad, nrows*hcell+hpad))

ax.axis('off')

ax.axis('tight')

ax.xaxis.set_visible(False)

ax.yaxis.set_visible(False)

ax.table(cellText=df.values, colLabels=df.columns, loc='center')

fig.savefig('table1.png', bbox_inches='tight')

输出: 另外,我想给图表的标题到顶部和左侧。 'Some text Here'是标题,黄线显示我想要另一个标题的位置。 所需的输出没有额外的空白在顶部。

回答:

一个选项是指定表​​格的边框作为保存图形时要使用的边框。

from matplotlib import pyplot as plt 

fig, ax = plt.subplots()

colums = ['col1', 'col2']

rows = ['row1', 'row2']

values = [[0, 1], [1, 0]]

table = ax.table(cellText=values, colLabels=colums, rowLabels=rows, loc='center')

ax.axis('off')

fig.canvas.draw()

bbox = table.get_window_extent(fig.canvas.get_renderer())

bbox_inches = bbox.transformed(fig.dpi_scale_trans.inverted())

fig.savefig('plop.png', bbox_inches=bbox_inches)

plt.show()

在这种情况下,外线croped因为线延伸到其位置的两侧。人们仍然可以在表格周围添加一些填充。例如。有5个像素填充,

bbox = table.get_window_extent(fig.canvas.get_renderer()) 

bbox = bbox.from_extents(bbox.xmin-5, bbox.ymin-5, bbox.xmax+5, bbox.ymax+5)

bbox_inches = bbox.transformed(fig.dpi_scale_trans.inverted())

回答:

我不认为你可以删除表格上方和下方的空格。 Reading the documentation,你已经有最高你将永远实现。

bbox_inches:STR或B-盒,可选

B-盒英寸。只有该图的给定部分被保存。如果“紧”,试图找出数字的紧密bbox。如果没有,使用savefig.bbox

不过,我已经为你设置正确的行和列的工作示例。 下面是图片后面的代码。

from matplotlib import pyplot as plt 

fig = plt.figure()

ax = fig.add_subplot(1, 1, 1)

colums = ['col1', 'col2']

rows = ['row1', 'row2']

values = [[0, 1], [1, 0]]

ax.table(cellText=values, colLabels=colums, rowLabels=rows, loc='center')

ax.axis('off')

ax.xaxis.set_visible(False)

ax.yaxis.set_visible(False)

fig.savefig('plop.png', bbox_inches='tight')

我强烈建议您调整轴/图设置后您的情节完全抽出。

以上是 顶部和底部的白色空间Python matplotlib图 的全部内容, 来源链接: utcz.com/qa/262431.html

回到顶部