Cómo trazar CDF a partir de una lista ordenada

Cómo trazar CDF a partir de una lista ordenada

Así que escribí un script de shell para hacer ping a un servidor web 86.400 veces y escribir el resultado en un archivo de texto. Ejemplo de un ping a continuación:

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

Mi primer problema es que luego lo necesito para extraer el valor del tiempo de ida y vuelta (12.6) de la salida del ping sin procesar en un segundo archivo de texto. Creo que lo que tengo ahora ignorará el punto decimal en 12.6 y solo aceptará los valores numéricos. Mi código a continuación:

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

Después de extraer esos valores de tiempo, sortedtime.txtleo el archivo de texto y convierto cada línea (es decir, cada tiempo de ida y vuelta) en un elemento de una lista llamada timelist[]. Luego imprime tanto la longitud como la lista completa para garantizar que la lista incluya los 86400 tiempos de ida y vuelta y que estén ordenados correctamente. Mi código a continuación:

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

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

Mi segundo y último problema es que necesito trazar un CDF de todos mis valores en esa lista de tiempo y mostrarlo. Soy nuevo en Python y no estoy muy familiarizado con el matplotlib.pyplotpaquete, por lo que no entiendo cómo haría para trazar los elementos de la lista en el eje x versus un eje y de 0 a 1.

Estoy trabajando en Linux, ¡cualquier ayuda es muy apreciada!

información relacionada