Matplotlib行高表属性

gdx19jrr  于 2023-03-30  发布在  其他
关注(0)|答案(3)|浏览(159)

我已经试过了我能找到的每一个命令和文档。我如何在这里设置行的高度。

from pylab import *

# Create a figure
fig1 = figure(1)
ax1_1 = fig1.add_subplot(111)

# Add a table with some numbers....

tab = [[1.0000, 3.14159], [1, 2], [2, 1]]

# Format table numbers as string
tab_2 = [['%.2f' % j for j in i] for i in tab]

y_table = plt.table(cellText=tab_2,colLabels=['Col A','Col B'], colWidths = [.5]*2, loc='center')
y_table.set_fontsize(34)

show()
6jygbczu

6jygbczu1#

您可以使用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()

产量

bwitn5fc

bwitn5fc2#

上面的答案是可行的,但有点欺骗性,没有提供任何灵活性,例如,你不能使顶行比其他行高。你可以使用get_celld()方法和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()

jecbmhm3

jecbmhm33#

我认为下面的比@JuneSkeeter提出的 * 如果 * 你知道你想要哪一行更大更简单。它避免了必须循环两次。这使得第一行(即行索引0)0.3

for r in range(0, len(colLabels)):
    cell = ytable[0, r]
    cell.set_height(0.3)

相关问题