문제

나는 새 터미널 창을 열 때마다 외부 IP 주소를 수집하여 현재 시간과 함께 텍스트 파일에 추가하는 작은 스크립트를 작성했습니다.내 IP 주소가 언제/얼마나 자주 변경되는지 시각화하는 방법에 대한 아이디어를 찾고 있습니다.집과 캠퍼스를 오가며 스크립트를 이용해서 분리할 수도 있는데, 따로 시각화해 보면 좋을 것 같습니다.

저는 matplotlib를 자주 사용합니다.어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

귀하의 IP를 한 지점으로 표시하십시오. xkcd 인터넷 지도 (또는 서로 다르지만 밀접하게 인접한 IP를 더 잘 표시하기 위해 지도의 일부를 확대했습니다.)

해당 IP를 보유한 빈도에 비례하여 각 포인트를 "스택"으로 플롯하고 IP 색상을 지정하여 최근 포인트를 더 밝게 만들고 덜 최근 포인트를 비례적으로 어둡게 만듭니다.

다른 팁

'언제'는 1차원적인 시간 데이터로 타임라인으로 잘 표현됩니다.더 큰 시간 척도에서는 세부 사항을 잃을 수도 있지만 "언제"에 대한 대부분의 플롯에는 이러한 결함이 있습니다.

"빈도"의 경우 시간 대 빈도의 표준 2D(막대) 도표를 일/주/월별로 버킷으로 나누는 것이 표준 방법입니다.이동 평균은 정보 제공용일 수도 있습니다.

타임라인과 막대 그래프를 결합하여 확대할 때 타임라인이 보이고 축소할 때 주파수 표시를 결합할 수 있습니다.

각 막대의 너비는 컴퓨터가 특정 IP 주소를 유지한 시간이고 각 막대의 높이는 너비에 반비례하는 수평 축의 시간 막대 그래프는 어떻습니까?또한 언제, 얼마나 자주 플롯하는지에 대한 플롯을 제공합니다.

데이터를 다음과 같이 해석할 수도 있습니다. 펄스 밀도 변조 SuperAudio CD에서 얻을 수 있는 것과 같은 신호입니다.이를 그래프로 표시하거나 데이터를 들을 수도 있습니다.IP 변경 이벤트에 대한 명확한 시간 길이가 없으므로 펄스 길이는 조정 가능한 매개변수입니다.유사한 방식으로 데이터를 구형파(삼각파, 톱니파 및 c)로 볼 수 있으며, 여기서 각 IP 변경 이벤트는 레벨 전환입니다.재미있을 것 같네요 순수 데이터 프로젝트.

matplotlib 사용자 가이드에는 범위를 나타내기 위해 차트에 막대를 그리는 방법에 대한 섹션이 있습니다.나는 직접 해본 적이 없지만 당신이 찾고 있는 것에 적합한 것 같습니다.

터미널을 지정했다고 가정하면 UNIX 변형 시스템에 있다고 가정합니다.명령줄 유틸리티 tail과 함께 -f 스위치를 사용하면 파일 끝을 지속적으로 모니터링할 수 있습니다.IBM과 같은 것을 사용할 수도 있습니다. inotify, 파일 변경 사항을 모니터링하거나 일반적으로 대부분의 배포판에서 표준으로 제공되는 dnotify(파일을 자체 디렉터리에 배치)할 수 있습니다(그런 다음 tail -n 1을 호출하여 마지막 줄을 가져올 수 있습니다).줄이 변경되면 Python의 time.time()을 사용하여 에포크 이후의 현재 시스템 시간을 파악하고 마지막 변경 시간에서 이를 뺀 다음 matplotlib를 사용하여 이 차이를 플롯할 수 있습니다.나는 당신이 그래프를 쉽게 만들기 위해 시간을 범위로 분류 할 수 있다고 가정합니다.1시간 미만의 변경 간격에는 막대 1개, 1~5시간 사이의 변경에는 또 다른 막대 등이 있습니다.

tail -f의 Python 구현이 있습니다. 여기 직접 사용하고 싶지 않다면.파일의 변경 사항이 감지되면 위의 작업을 수행할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top