как динамически обрабатывать сюжет с несколькими списками? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть ряд списков с таким же значением len, как показано ниже:

a=[10,56,78,90]
b=[2,8,33,10]

И мне может потребоваться включить новый список, например.

Я использовал следующие для построения списков a и b:

plt.plot(x,a)
plt.plot(x,b)

Как видите, я хочу использовать одну и ту же ось X для них обоих.

Однако я хотел бы выяснить каким должен быть этот фрагмент кода, чтобы динамически получать новые списки или удалять текущий список.

Есть какие-нибудь мысли по этому поводу?

tks

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Один простой способ - запустить al oop, который строит каждый список отдельно и выглядит так, как будто он движется. Для этого вы должны поместить свои списки в список. Например:

l=[a,b];
for i in range(0,len(l):
   plt.plot(x,l[i]);

вы можете добавить заголовок, ось легенды и т. Д. c.

1 голос
/ 07 мая 2020

Вот как:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation

#setup the figure 
plt.figure(figsize=(12,4))
x=[1,2,3,4]
initial=4*[0]
line1 = plt.plot(x, initial, 'k', lw=1.5, label=0)
plt.title('Dynamic Plotting', fontsize=16)
plt.ylabel('Dynamic List', fontsize=12)
plt.xlabel('x', fontsize=12)

plt.ion()   # set interactive mode
plt.show()


a=[10,56,78,90]
b=[2,8,33,10]
u=[a,b]

#loop over your list
for i,list in enumerate(u):
    for l in line1:
        l.remove()
        del l

    line1 = plt.plot(x, list, 'k', lw=1.5, label=i)
    plt.legend()
    plt.gcf().canvas.draw()
    plt.pause(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...