顶部和底部的白色空间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