У меня есть набор данных со 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
...
И получившийся график выглядит следующим образом: