So zeichnen Sie CDF aus einer sortierten Liste

So zeichnen Sie CDF aus einer sortierten Liste

Ich habe also ein Shell-Skript geschrieben, um einen Webserver 86.400 Mal anzupingen und die Ausgabe in eine Textdatei zu schreiben. Beispiel für einen Ping unten:

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

Mein erstes Problem ist, dass ich dann den Wert der Hin- und Rücklaufzeit (12,6) aus der Roh-Ping-Ausgabe in eine zweite Textdatei extrahieren muss. Was ich jetzt habe, ignoriert meiner Meinung nach den Dezimalpunkt in 12,6 und nimmt nur die numerischen Werte auf. Mein Code unten:

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

Nachdem ich diese Zeitwerte extrahiert habe, sortedtime.txtlese ich die Textdatei und mache aus jeder Zeile (also jeder Roundtrip-Zeit) ein Element in einer Liste namens timelist[]. Anschließend werden sowohl die Länge als auch die gesamte Liste gedruckt, um sicherzustellen, dass die Liste alle 86400 Roundtrip-Zeiten enthält und sie richtig sortiert sind. Mein Code unten:

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

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

Mein zweites und letztes Problem ist, dass ich eine CDF aller meiner Werte in dieser Zeitlistenliste erstellen und anzeigen muss. Ich bin neu bei Python und kenne mich mit dem matplotlib.pyplotPaket nicht so gut aus. Daher verstehe ich nicht, wie ich die Listenelemente auf der X-Achse im Vergleich zu einer Y-Achse von 0 bis 1 darstellen soll.

Ich arbeite unter Linux und bin für jede Hilfe sehr dankbar!

verwandte Informationen