2016-12-14 49 views
1

我有一个函数根据您给它的输入参数创建不同的数据集。我试图创建一个显示返回数据图形的图形,然后在它下面显示一个表格/框,其中包含我传入函数的输入参数。如何将只包含字符串的表添加到matplotlib图

下面是一些我想要做的

col_lables = ['interp', 'back', 'smooth_length', 'exclude', 'adj_sens', 'orient', 'extrfwhm'] 
table_vals = ['1', 'yes', 'None', 'False', 'False', 'no', '6.0'] 

表中的字符串我试过初始化为这样

the_table = pypl.table(cellText=table_vals, 
colWidths=[0.1] * 3, 
rowLabels=row_labels, 
colLabels=col_labels, 
loc='center right') 

到目前为止,我已经成功地绘制表我的数据,但是我不能添加使用字符串的表格,因为它的cellText文本。

有没有一种方法可以给我的图形添加某种图形让我可以显示与对方相关的col_labels和table_vals?由于有很多参数(比我所展示的要多),最好将它保存在一个单独的图中,以便文本不会遮挡图形。

回答

1

您可以使用子图或指定放置表的坐标轴。然后,您可以关闭框架和表格的刻度。见: answer to: two tables in matplotlib

col_lables = ['interp', 'back', 'smooth_length', 'exclude', 'adj_sens', 'orient', 'extrfwhm'] 
table_vals = ['1', 'yes', 'None', 'False', 'False', 'no', '6.0'] 
axMain = subplot(2,1,1) 
axTable1 = subplot(2,1,2, frameon =False) 
setp(axTable1, xticks=[], yticks=[]) # a way of turning off ticks 

axMain.plot([1,2,3]) 
tab1 = axTable1.table(cellText=[table_vals], loc='upper center', colLabels=col_lables) 
tab1.scale(1.5,1.5) 

输出看起来像: table showing different columns

+0

所以试图table_vals添加到表时,我发现了一个断言错误。 assert len(rowLabels)== rows 这与尝试使用字符串作为cellText有什么关系吗?我的数据长度和列的长度都相同,数组是一个二维数组,其中包含所有我的值的单个数组。 – Giovanni

+0

我实际上已经用你的col_lables和table_vals更新了我的答案。如果该代码不起作用,它可能是您的matplotlib版本。我使用的是2.0.0b4版本。但我不知道以前版本中的表有任何问题。 –

+0

你的代码工作!我发现它不是值,但是我设置的colWidths参数导致了崩溃,可能是由于我必须绘制的参数数量以及其中一些参数很长。谢谢你的帮助! – Giovanni

相关问题