У меня есть двумерный массив NumPy txtStrs
, содержащий строки, которые я пишу в виде текста на ось фигуры matplotlib ax
, используя, например,
ax.text( posX, posY, txtStrs[0,0] )
Позже я хочу обновить эти тексты (одинаковые позиции, цвета и т. д.) без перерисовки всей фигуры.Поэтому я сохранил текстовые объекты в другом массиве.
Когда я теперь хочу обновить тексты, я использовал два цикла for
import numpy as np
import matplotlib.pyplot as plt
siz = 20
txtStrs = np.empty( (siz, siz), dtype = str )
txtObjs = np.empty( (siz, siz), dtype = object )
plt.figure()
ax = plt.gca()
for x in range(siz):
for y in range(siz)):
txtObjs[x,y] = ax.text( x, y, "" )
#Fill txtStrs with some string values
for x in range(siz):
for y in range(siz)):
txtObjs[x,y].set_text( txtStrs[x,y] )
Последний цикл for кажется ненужным и не совсем питоническиммне.Если бы мне не нужно было вызывать метод set_text
, я мог бы использовать внутренние обновления numpy для обновления.
Мой вопрос: есть ли другой способ передать txtStrs
в txtObjs
,например, используя векторизацию, списочное понимание или что-то еще?