기사 검색

검색어를 입력하세요
스카이 테크 블로그
토토 결과을 잃지 않고 선 그래프를 단순화하는 방법

토토 결과을 잃지 않고 선 그래프를 단순화하는 방법

이 문서에서는 SKYDIV 데스크탑 클라이언트의 성능 확인 기능에서 선 그래프의 토토 결과을 잃지 않고 데이터를 단순화하는 방법을 설명합니다 특히 Largest Triangle Three Buckets 알고리즘을 이용한 다운샘플링 방법을 소개하고 그 장점과 단점을 설명한다

오늘은 SKYDIV 데스크톱 클라이언트 기능에 사용됩니다토토 결과을 잃지 않고 선 그래프를 단순화하는 방법

1 ​이를 실현하는 데 관련된 기능 및 과제 개요

SKYDIV의 성능 확인 기능 화면입니다

성능 확인 기능은 서버의 CPU 사용량과 메모리 사용량에 관한 것입니다
시간별 선 토토 결과로 표현됩니다1주일 분량의 데이터는 수만 개의 플롯으로 구성되므로 데이터를 있는 그대로 처리하고 그리는 것은 엄청난 비용이 듭니다(또한 토토 결과를 많이 표시해야 합니다)

2 기계적으로 단순화하면 그래프의 토토 결과이 사라집니다

SKYDIV 데스크톱 클라이언트의 성능 확인 기능은 그렇게 큰 영역에 토토 결과를 그리지 않기 때문에 데이터를 솎아내는 작업이 필요하지만 아래의 샘플 데이터는

플롯을 기계적으로 1/10로 얇게 만듭니다

이렇게기계적으로 솎아내는 경우 피크 값이 채택되지 않을 수 있습니다(커뮤니티에서는 데이터를 솎아내는 것을 "다운샘플링"이라고도 표현합니다)

3. ​기능 손실 없이 데이터 축소

따라서 SKYDIV에서는 선 토토 결과와 같은 시계열 데이터 플롯을 얇게 만드는 방법으로가장 큰 삼각형 세 개의 버킷을 채택했습니다

알고리즘에 대해 간단히 설명하겠습니다
① 데이터 분할
예를 들어, 10,000개의 플롯 데이터를 1500개로 줄이려면 이를 각각 20개의 데이터 세트로 나누십시오

②분할된 그룹 내에서 3개 포인트의 모든 조합을 생성
위에 언급된 20개의 플롯 데이터 세트(P1 ~ P20)에서 각각 3개 조각을 결합합니다

S1:(P1,P2,P3)
*순서는 중요하지 않으므로 20C3에는 총 1,140개의 플롯 세트가 있습니다
⇒20!/{(20-3)! * 3!}=1140

③각각의 면적을 계산합니다
아래 표시된 신발끈 공식을 사용하여 각 플롯 세트(삼각형)의 면적을 계산하십시오
//C++에서 삼각형 면적 계산
doublecalculateTriangleArea(const Point& p1, const Point& p2, const Point& p3)

4 플롯 세트에서 면적이 가장 큰 세 점을 선택

1번으로 나누어진 데이터에 대해 ②~4번을 반복하는데, 반복시 두 번째 이후 포인트 데이터 세트의 왼쪽 포인트가 이전 데이터 세트에서 결정된 오른쪽 포인트 좌표로 설정되어 3개의 좌표가 설정됩니다

4 ​실제로 데이터를 ​얇게 만들고 단순화합니다

이제 가장 큰 삼각형 3개 버킷 알고리즘을 사용하여 데이터를 얇게 만들고 단순화합시다!
*샘플 프로그램은 CSV 파일에서 플롯을 읽고, 가장 큰 삼각형 세 개의 버킷을 사용하여 지정된 데이터 수까지 플롯 데이터를 얇게 만들고, 이를 CSV 파일에 저장하고, Excel에 토토 결과로 표시합니다

1주일 간의 CPU 사용량입니다45000개 플롯(X축은 약 600픽셀입니다)

만약 당신이 진지하게 많은 플롯을 그리면, 그것은 채워넣는 것처럼 보일 것입니다2000개 플롯까지 원본 데이터의 1/20 이하로 플롯을 얇게 만듭니다

그렇게 큰 차이는 모르겠어요1000개 플롯, 원본 데이터의 1/45입니다

드디어 선이 보입니다500개 플롯, 원본 데이터의 1/90입니다

아주 괜찮아 보입니다 데이터를 얇게 만들고 더욱 단순화하겠습니다250개 플롯, 1/180

너무 거친가요?

5 ​마침내

이번에는 선 그래프의 토토 결과을 잃지 않고 단순화하는 방법을 설명하겠습니다가장 큰 삼각형 세 개의 버킷알고리즘을 사용하여 다운샘플링을 도입했습니다

좋은 점만 소개했지만, 물론 단점도 있습니다

  • 단점 데이터가 적으면 그래프의 토토 결과이 없어집니다

만약 그리기 및 데이터 처리 비용이 걱정된다면 이것을 고려해 보십시오

그렇습니다


\공유해주세요! /
  • X
  • 페이스북
  • 라인

입사 후 기술을 향상시키고 싶은 젊은 사람이든, 다양한 분야에서 자신의 경험을 활용하고 싶은 베테랑이든, 우리는 각 개인의 경험에 맞는 중견 채용을 제공합니다

스카이코퍼레이션의 소프트웨어 개발, 제품, 채용에 관한 문의사항은 아래 링크를 확인해주세요
문의하기