テーブルは軸内に作成されるので、最終的なプロットサイズは軸のサイズに依存します。ですから、原理的には、Figureのサイズを設定するか、最初にAxesのサイズを設定して、テーブルをそれに適応させることができます。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,1))
t_data = ((1,2), (3,4))
table = plt.table(cellText = t_data,
colLabels = ('label 1', 'label 2'),
rowLabels = ('row 1', 'row 2'),
loc='center')
plt.axis('off')
plt.grid('off')
plt.savefig(__file__+'test2.png', bbox_inches="tight")
plt.show()
![enter image description here](https://i.stack.imgur.com/ZqEsg.png)
別の解決策は、そのままテーブルが描画させて、保存する前に、テーブルのバウンディングボックスを見つけることです。これは、テーブルの周りに本当にタイトなイメージを作成することができます。第2の方法は完璧に動作することを
import matplotlib.pyplot as plt
import matplotlib.transforms
t_data = ((1,2), (3,4))
table = plt.table(cellText = t_data,
colLabels = ('label 1', 'label 2'),
rowLabels = ('row 1', 'row 2'),
loc='center')
plt.axis('off')
plt.grid('off')
#prepare for saving:
# draw canvas once
plt.gcf().canvas.draw()
# get bounding box of table
points = table.get_window_extent(plt.gcf()._cachedRenderer).get_points()
# add 10 pixel spacing
points[0,:] -= 10; points[1,:] += 10
# get new bounding box in inches
nbbox = matplotlib.transforms.Bbox.from_extents(points/plt.gcf().dpi)
# save and clip by new bounding box
plt.savefig(__file__+'test.png', bbox_inches=nbbox,)
plt.show()
![enter image description here](https://i.stack.imgur.com/qjWkj.png)
!助けてくれてありがとう、これは巨大な修正です! – halolord01