Я не могу понять, как "синхронизировать" размеры таблицы и фигуры, чтобы таблица полностью лежала внутри фигуры.
import matplotlib.pyplot as plt
from string import ascii_uppercase
from random import choice
#content for the table
height = 9
width = 9
grid = [[choice(ascii_uppercase) for j in range(width)] for i in range(height)]
#desired size of a cell
cell_size = 0.3
fig = plt.figure(figsize=(width * cell_size, height * cell_size))
ax = fig.add_subplot(1, 1, 1)
the_table = ax.table(cellText=grid, loc='center')
for pos, cell in the_table._cells.items():
cell._height = cell._width = cell_size
plt.show()

Насколько я понимаю, область в пределах оси (+ некоторые внешние поля) равна фигуре - когда я сохраняю ее как файл изображения, она сохраняет только эту область, обрезая все остальные, и размер изображения 194x194, что соответствует размеру рисунка и DPI:
fig.get_size_inches()
>>array([2.7, 2.7])
fig.dpi
>>72.0
Итак, я предполагаю, что мой вопрос: когда я устанавливаю размер ячейки в таблице, не так ли это в дюймах (так же, как для размера фигуры)? Или DPI для таблицы отличается? Я не смог найти связанные с dpi методы или атрибуты для класса matplotlib.table.Table.