Привет, у меня есть код для создания цветовой карты, и обновление каждый раз увеличивается, но когда работает, обновление происходит все медленнее. я также пытался использовать set_array и эту функцию быстрее, но только помещал данные в пространство, которое я изначально записывал, и я не мог найти что-то для изменения размера, вы можете попробовать это раскомментировать строки 25 и 41 и комментировать строку 44.
кто-нибудь может помочь мне сделать это быстрее или изменить размер, чтобы я мог использовать set_array?
import numpy as np # Cargamos numpy como el alias np
import matplotlib.pyplot as plt # Crgagamos matplotlib.pyplot como el alias plt
import matplotlib.colors
import random
from time import time
cc=51
norm = matplotlib.colors.Normalize(0,255)
colors = [[norm(0), "w"],
[norm(cc), "blue"],
[norm(cc*2), "green"],
[norm(cc*3), "yellow"],
[norm(cc*4), "darkorange"],
[norm(cc*5), "red"]]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)
data=[]
o=0
# Creamos una figura
fig, ax = plt.subplots()
plt.ioff()
#im= ax.imshow(np.random.random((50,50)),cmap)#usarlo con el set array
#plt.xlim([0, 2000])
#plt.ylim([0, 2000])
# Creamos los arrays dimensionales
x = np.arange(-10, 10, 1)
y = np.arange(-10, 10,1)
# Obtenemos las corrdenadas resultantes de esos arrays
X, Y = np.meshgrid(x, y)
# datos y grafico
def plot(data,cmap):
# im.set_array(data) #Update la matriz del colormap
plt.imshow(data,cmap,interpolation='none')
fig.canvas.draw()
fig.canvas.flush_events()
plt.show(block=False)
def datos(tam):
wf_data=np.random.rand(tam)
return wf_data
while o<100:
start_time = time()
print(o)
data.append(datos(100))
o=o+1
plot(data,cmap)
elapsed_time = time() - start_time
print("Elapsed time: %0.10f seconds." % elapsed_time)