Tkinter - 使用 set_text 更新文本绘图
Tkinter - Updating text plotting using set_text
我在二维数组中有值,我使用以下几行来使用它们:
t1 = [[self.ax.text(i+.2,n-.6-j,myArray[0][j][i])
for i in range(myArray.shape[2])]
for j in range(myArray.shape[1])]
我正在尝试使用此更新它们:
t1.set_text(myArray[self.ref][0][0])
错误是:
AttributeError: 'list' object has no attribute 'set_text'
但是,我尝试只更新一个值,例如:
t1 = self.ax.text(10,10, myArray[0][0][0])
它工作得很好。
我的问题是:如何一次更新整个数组值的绘图?通过更新,我的意思是删除以前的值并绘制一次新值,这样它们就不会堆积起来。
加法
我尝试应用此处提到的解决方案:
并将其扩展到我的问题,仍然没有用。
t1
是包含许多 text
元素的二维列表,您可以对
之类的内容执行相同的操作
t1 = []
for j in range(myArray.shape[1]):
sublist = []
for i in range(myArray.shape[2]):
txt = self.ax.text(i+.2,n-.6-j,myArray[0][j][i])
sublist.append(txt)
t1.append(sublist)
所以你可以用set_text()
做类似的事情来改变文本
for j in range(myArray.shape[1]):
for i in range(myArray.shape[2]):
t1[i][j].set_text(myArray[0][j][i])
或使用enumerate()
for j, row in enumerate(t1):
for i, cell in enumerate(row):
cell.set_text(myArray[0][j][i])
或使用zip()
for row, arr_row in zi(t1, myArray[0]):
for cell, arr_cell in zip(row, arr_row):
cell.set_text(arr_cell)
顺便说一句:所有示例都未经过测试,因此可能需要进行一些更改。
使用 t1 = self.ax.text(10,10, myArray[0][0][0])
将列表替换为单个元素,这样就失去了对所有元素的访问权。
我在二维数组中有值,我使用以下几行来使用它们:
t1 = [[self.ax.text(i+.2,n-.6-j,myArray[0][j][i])
for i in range(myArray.shape[2])]
for j in range(myArray.shape[1])]
我正在尝试使用此更新它们:
t1.set_text(myArray[self.ref][0][0])
错误是:
AttributeError: 'list' object has no attribute 'set_text'
但是,我尝试只更新一个值,例如:
t1 = self.ax.text(10,10, myArray[0][0][0])
它工作得很好。
我的问题是:如何一次更新整个数组值的绘图?通过更新,我的意思是删除以前的值并绘制一次新值,这样它们就不会堆积起来。
加法
我尝试应用此处提到的解决方案:
并将其扩展到我的问题,仍然没有用。
t1
是包含许多 text
元素的二维列表,您可以对
t1 = []
for j in range(myArray.shape[1]):
sublist = []
for i in range(myArray.shape[2]):
txt = self.ax.text(i+.2,n-.6-j,myArray[0][j][i])
sublist.append(txt)
t1.append(sublist)
所以你可以用set_text()
做类似的事情来改变文本
for j in range(myArray.shape[1]):
for i in range(myArray.shape[2]):
t1[i][j].set_text(myArray[0][j][i])
或使用enumerate()
for j, row in enumerate(t1):
for i, cell in enumerate(row):
cell.set_text(myArray[0][j][i])
或使用zip()
for row, arr_row in zi(t1, myArray[0]):
for cell, arr_cell in zip(row, arr_row):
cell.set_text(arr_cell)
顺便说一句:所有示例都未经过测试,因此可能需要进行一些更改。
使用 t1 = self.ax.text(10,10, myArray[0][0][0])
将列表替换为单个元素,这样就失去了对所有元素的访问权。