Matplotlib Row heights table property

The above answer works, but is kinda a cheat and doesn't provide any flexibility, eg. you can't make the top row higher than the others. You can explicitly set the height of each cell in a row with the get_celld() method and set_height():

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
tab = [[1.0000, 3.14159], [1, 2], [2, 1]]
tab2 = [['%.2f' % j for j in i] for i in tab]
colLabels=['Col A','Col B']
ytable = ax.table(cellText=tab2, colLabels=colLabels, 
                    colWidths=[.5]*2, loc='center')

cellDict = ytable.get_celld()
for i in range(0,len(colLabels)):
    cellDict[(0,i)].set_height(.3)
    for j in range(1,len(tab)+1):
        cellDict[(j,i)].set_height(.2)

ytable.set_fontsize(25)
ax.axis('off')
ax.axis('off')
plt.show()

enter image description here


You could use ytable.scale:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
tab = [[1.0000, 3.14159], [1, 2], [2, 1]]
tab2 = [['%.2f' % j for j in i] for i in tab]

ytable = plt.table(cellText=tab2, colLabels=['Col A','Col B'], 
                    colWidths=[.5]*2, loc='center')
ytable.set_fontsize(34)
ytable.scale(1, 4)
plt.show()

yields

enter image description here