Matplotlib 行高 table 属性
Matplotlib Row heights table property
我已经尝试了我能找到的所有命令和文档。此处如何设置行高。
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()
您可以使用 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()
产量
以上答案有效,但有点作弊,不提供任何灵活性,例如。您不能使顶行高于其他行。您可以使用 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()
我认为下面的内容比@JuneSkeeter 提出的要简单如果你知道你想要更大的行。它避免了必须循环两次。这使得第一行(即行索引 0)0.3
.
for r in range(0, len(colLabels)):
cell = ytable[0, r]
cell.set_height(0.3)
我已经尝试了我能找到的所有命令和文档。此处如何设置行高。
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()
您可以使用 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()
产量
以上答案有效,但有点作弊,不提供任何灵活性,例如。您不能使顶行高于其他行。您可以使用 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()
我认为下面的内容比@JuneSkeeter 提出的要简单如果你知道你想要更大的行。它避免了必须循环两次。这使得第一行(即行索引 0)0.3
.
for r in range(0, len(colLabels)):
cell = ytable[0, r]
cell.set_height(0.3)