我试图用python绘制一个表。我有它的工作方式…但是当我绘制我的表时,它并没有在我写表的末尾绘制通过/失败列。这些列似乎是按字母顺序显示的。在
import pandas as pd
import matplotlib.pyplot as plt
MinP_M=5
Min_M=6
Per_M=7
Per_G=8
Per2_M=9
PerFlat_M=10
MaxPL_M=11
Max_M=12
GF_M =13
fig1 = plt.figure()
fig1.set_size_inches(8.7,11.75,forward=True)
ax1=fig1.add_subplot(111)
ax1.axis('off')
ax1.axis('tight')
data2={'Min':['%s'%MinP_M,'%s'%Min_M,'',''],
'Typ':['%s'%Per_M,'%s'%Per_G,'%s'%Per2_M,'+/- %s'%PerFlat_M],
'Max':['%s'%MaxPL_M,'','%s'%Max_M,'+/- %s'%GF_M],
'Pass/Fail':['','','','']
}
df2 = pd.DataFrame(data2)
the_table2=ax1.table(cellText=df2.values,colWidths=[0.15]*5,rowLabels=['A','B','C', 'D'],colLabels=df2.columns,loc='center')
plt.show()
第一部分比较容易解决。当您使用
dict
创建pandas
数据帧时,关键字的顺序和列的顺序是不固定的。要获得正确的排序,请使用columns
关键字。第二部分比较棘手。我找到的解决方案here是用第二个表覆盖原始表,然后在第二个表中添加另一个与原始表的四个单元格高度相同的单元格。为此,您必须首先从表实例中获取单元字典,并求出表行的高度。请参见以下代码:我不得不关闭一些格式化选项,因为它们在我的电脑上给出了奇怪的结果。如果您想让表居中,请使用
bbox
命令中的bbox
选项。最终结果如下:希望这有帮助。在
相关问题 更多 >
编程相关推荐