我正在使用matplotlib表来打印'n'方形板并随机选择'X'和'Y'。但是,我不知道,我在文档中找不到这个,如何找到表中特定元素的值(文本)。
def table(data):
fig, ax = plt.subplots()
ax.set_axis_off()
tb = Table(ax)
nrows, ncols = data.shape
width, height = 1.0 / ncols, 1.0 / nrows
# Add cells
for (i,j), val in np.ndenumerate(data):
tb.add_cell(i, j, width, height, text=random.choice('XY'), loc='center', facecolor='none')
print(i, j)
ax.add_table(tb)
return fig
如果上面的两个和上面的两个单元格都是'X',我想写,强制写'Y'而不是随机选择。
我尝试使用调试:
print(tb[i][j])
但它失败了。我的目标是拥有这样的东西:
if(tb[i-2]=='X' and tb[i-1]=='X' and tb[j-2]=='X' and tb[j-1]=='X'):
tb.add_cell(i, j, width, height, text='y'
else
tb.cell(I,j, text=random_choice(X,Y)
提前致谢!
答案 0 :(得分:0)
您应该查看表格的API:https://matplotlib.org/api/table_api.html
创建单元格时,您将文本作为参数传递,但是当您尝试检查某个元素,即tb[i-2]=='X'
是否未引用该文本的实例时。
因此它应该是tb[i-2].get_text() == 'X'
,它将返回单元格Text值。
关于以下评论:
您可能想要创建一种魔术方法来访问表格的数据。
def __getitem__(self, key):
return self.values[key]
tb.__getitem__(i-2)