Я хотел бы обновить текст матрицы в динамическом режиме, используя функцию анимации matplotlib. Но я обнаружил, что если массив данных слишком велик, анимация станет очень медленной. Есть ли способ улучшить его?Улучшение обновленной скорости в Matplotlib
from matplotlib import animation
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(10,20))
def updatefig(i):
plt.cla()
ax.grid()
data = np.random.rand(50,50)
ax.set_xticks(np.arange(data.shape[1]+1))
ax.set_yticks(np.arange(data.shape[0]+1))
for y in range(data.shape[0]):
for x in range(data.shape[1]):
plt.text(x + 0.5 , y + 0.5, '%.1f' % data[y, x],horizontalalignment='center',verticalalignment='center',color='b',size = 6)
plt.draw()
anim = animation.FuncAnimation(fig, updatefig,interval=50)
plt.show()
На самом деле, я хочу создать график Heatmap со значениями данных, как показано ниже. Но использовать аннотации - единственный способ, который я мог бы понять. Heamap with values
Это много аннотаций .. Вы, вероятно, не будете видеть много с 2500 точек пометки в одном участке (если сюжет не огромен, и данные точки скудны). Во всяком случае, я думаю, что matplotlib не имеет механизма для этого. Вы можете попробовать [this] (http://stackoverflow.com/a/14434334/764322), но я считаю, что результат будет таким же. То, что замедляет вашу анимацию, повторяет все ваши 2500 точек в python. –