Olá Leandro, tudo bem ? Espero que sim.
Seu código ficou muito legal, parabéns por compartilha-lo.
Fiz algumas modificações usando list comprehension que permite gerar listas usando for, e também criei os parâmetros em variáveis.
A primeira célula é composta das importações das funções, configuração do SEED e da inicialização das variáveis.
from random import randrange, seed #função de gerar numeto aleatorio e de seed do gerador
import matplotlib.pyplot as plt #função para plotar gráfico
seed(10) # garantir que vamos conseguir reproduzir os resultados
y = [] # incializando a lista do eixo y
eventos = 8 # quantidade de eventos por iterações
ano_inicial = 2001 # ano incial dos eventos
limite_lista = 40 # numero maximo de eventos
lim_inf = 30 # velocidade minima
lim_sup = 50 # velocidade maxima
A segunda célula é a que vai gerar ou atualizar as listas e plotar o gráfico.
if len(y) > limite_lista: # verifica se a lista passou o limite
y = [] # reinicializacao da lista do eixo y
# concatenando a lista y com uma nova lista.
# A nova lista eh gerada por numeros aleatorios entre o limite inferior e o superior,
# a quantidade de numeros eh determinada pelo numero de eventos
y = y + [randrange(lim_inf, lim_sup) for _ in range(eventos)]
# lista de anos, comecando no ano incial e somando um ano até o tamanho de y menos 1
x = [ano_inicial + ano for ano in range(0, len(y))]
# plot das listas X e Y
plt.plot(x, y, marker='o')
plt.title('Velocidade Média Avenida')
plt.xlabel('Anos')
plt.ylabel('Velocidade Média')
plt.show()
A primeira célula tem a função de tornar os parâmetros facilmente interpretados e modificáveis.
Já a segunda célula tem a lógica do seu projeto levemente modificada com o list comprehension, concatenação de lista e utilização da variável de ano inicial.
Espero ter ajudado e agregado um pouco no seu projeto.
Novamente, parabéns por compartilhar seu código.
Qualquer duvida não hesite em perguntar.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!