Como plotar CDF a partir de uma lista ordenada

Como plotar CDF a partir de uma lista ordenada

Então, escrevi um script shell para executar ping em um servidor web 86.400 vezes e gravar a saída em um arquivo de texto. Exemplo de um ping abaixo:

64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=1 ttl=60 time=12.6 ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=2 ttl=60 time=17.2 ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=3 ttl=60 time=11.0 ms

Meu primeiro problema é que preciso extrair o valor do tempo de ida e volta (12,6) da saída bruta do ping para um segundo arquivo de texto. Acredito que o que tenho agora irá ignorar o ponto decimal em 12,6 e considerar apenas os valores numéricos. Meu código abaixo:

sed 's/.* time= \ ([0-9]* \ ). * /\1/' pingoutput.txt | sort -n > sortedtime.txt

Depois de extrair esses valores de tempo, sortedtime.txtleio o arquivo de texto e transformo cada linha (portanto, cada tempo de ida e volta) em um elemento de uma lista chamada timelist[]. Em seguida, ele imprime o comprimento e a lista inteira para garantir que a lista incluiu todos os 86.400 tempos de ida e volta e que foram classificados corretamente. Meu código abaixo:

    with open("sortedtime.txt", 'r') as time:
         timelist = []
         for line in time:
             timelist.append(line)
         time.close()

   print timelist[0:86399]
   print len(timelist)

Meu segundo e último problema é que preciso traçar um CDF de todos os meus valores nessa lista de timelist e exibi-lo. Sou novo em Python e não estou muito familiarizado com o matplotlib.pyplotpacote e, portanto, não entendo como plotaria os elementos da lista no eixo x versus um eixo 0 a 1 y.

Estou trabalhando em Linux, qualquer ajuda será muito apreciada!

informação relacionada