如何从排序列表中绘制 CDF

如何从排序列表中绘制 CDF

因此,我编写了 shell 脚本来 ping Web 服务器 86,400 次,并将输出写入文本文件。下面的 1 个 ping 示例:

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

我的第一个问题是我需要它将原始 ping 输出中的往返 (12.6) 时间值提取到第二个文本文件中。我现在所拥有的,我相信会忽略 12.6 中的小数点,只接受数值。我的代码如下:

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

将这些时间值提取到后,sortedtime.txt我读取文本文件并将每一行(因此每个往返时间)放入名为 的列表中的一个元素中timelist[]。然后,它会打印长度和整个列表,以确保列表包含所有 86400 个往返时间,并且它们已正确排序。我的代码如下:

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

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

我的第二个问题也是最后一个问题是我需要在该时间列表中绘制所有值的 CDF 并显示它。我是 Python 新手,对这个包不太熟悉matplotlib.pyplot,所以我不明白如何在 x 轴与 0 到 1 y 轴上绘制列表元素。

我在 Linux 上工作,非常感谢任何帮助!

相关内容