그래프에 플롯해야하는 100,000 데이터 점이있는 데이터 집합이 있습니다. 결과 그래프는 약 500 픽셀 폭이 될 것이므로 모든 픽셀에 대해 약 200 개의 데이터 포인트가있을 것입니다. 이는 상당히 불필요한 것으로 보입니다.그래프 모양을 잃지 않고 그래프 데이터 줄이기
렌더링 속도를 높이기 위해 그래프의 모양을 잃지 않고 과도한 데이터 포인트를 없애는 방법을 찾아야합니다. 현재 앤티 앨리어싱 및 다른 "효과"를 사용하고 있기 때문에 현재 100,000 포인트를 모두 렌더링하는 데 10 초 이상 걸릴 수 있습니다.
나는이 데이터를 200 번째 데이터 포인트마다 채우고 계획을 세우는 방법으로이 문제에 접근하려고 노력했다. 그러나 이것은 중요한 포인트가 빠져 나가는 결과를 낳았다. (내가 보여줄 수 있기를 원하는 그래프의 스파이크에 대해 생각해 보라.) 또한 데이터 세트를 200 개의 데이터 포인트로 분할 한 다음 모든 청크에서 최대 값을 가져 오는 것으로 생각했지만 그 중 하나는 작동하지 않습니다.
누구나 내 요구 사항에 맞는 방법을 알고 있습니까? 제가 사용하는 언어는 PHP입니다. 그래프는 GD에 의해 만들어지며 데이터는 MySQL에서 나오므로, 그 중 일부에 대한 최적화는 환영합니다.
데이터는이 형식으로되어 있습니다 :
Datetime Value
2005-01-30 00:00:00 35.30
2005-01-30 01:00:00 35.65
2005-01-30 02:00:00 36.15
2005-01-30 03:00:00 35.95
...
그리고 결과 그래프는 현재 다음과 같습니다 : 몰라요
alt text http://www.ulmanen.fi/stuff/graph-sample.png
각 200 포인트 빈에서 최대 값을 취하는 것이 효과가없는 이유는 무엇입니까? 그래프를 스크롤 또는 확대 (예 : 한 번에 모두 표시하지 않음)하는 방법은 어떻습니까? 또한 데이터가 정적이거나 다소 정적이어서 데이터베이스에서 전처리 할 수있는 기회가있을 수 있습니까? –
@martin clayton, 왜냐하면 나는 'min'스파이크를 고려하고 싶기 때문에 max를 사용하면 그들을 파괴 할 것이다. 본질적으로, 나는 200 포인트의 덩어리에서 가장 중요한 포인트를 찾는 방법이 필요하다. –
해상도에서 데이터의 세부 사항을 표시 할 수없는 경우 해상도가 너무 낮습니다. – Svante