정렬된 목록에서 CDF를 그리는 방법

정렬된 목록에서 CDF를 그리는 방법

그래서 웹 서버에 86,400번 핑을 보내고 그 출력을 텍스트 파일에 기록하는 쉘 스크립트를 작성했습니다. 아래의 한 핑 예:

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에서 작업하고 있습니다. 도움을 주시면 대단히 감사하겠습니다!

관련 정보