Оптимизация графика: более миллиона пунктов - PullRequest
0 голосов
/ 30 декабря 2010

У меня есть пользовательский элемент управления - диаграмма с размером, например, 300x300 пикселей и более одного миллиона точек (может быть меньше). И понятно, что сейчас он работает очень медленно. Я ищу алгоритм, который покажет только несколько точек с минимальной визуальной разницей.

У меня есть ссылка на компонент , у которого есть все функции именно то, что мне нужно (Демо 2 миллиона баллов):

Буду благодарен за любые материалы, ссылки или мысли, как реализовать такую ​​функциональность.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Если я правильно понимаю ваш вопрос, то вы хотите построить график набора данных, в котором у вас ~ 1M точек, но горизонтальное разрешение диаграммы намного меньше? Если это так, вы можете уменьшить набор данных, чтобы узнать количество доступных значений x. Если ваши данные отсортированы через равные интервалы, вы можете извлечь каждую N-ую точку и построить ее. Выберите N так, чтобы количество точек, скажем, удвоило разрешение (в этом случае N = 2000 даст 500 точек для отображения).

Если интервалы сильно отличаются друг от друга (не с регулярными интервалами), вы можете аппроксимировать свой график полиномом, или сплайном или любым другим подходящим методом, а затем интерполировать 300-600 точек из этого приближения.

EDIT:

В зависимости от характера данных, вы можете получить артефакты с псевдонимами, когда просто выбираете каждую точку N't. Вероятно, существуют более эффективные методы решения этой проблемы, но опять же - это зависит от того, что именно вы хотите построить.

0 голосов
/ 07 января 2011

Вы всегда можете купить элемент управления - он продается!

Джон-Даниэль Траск (соучредитель Mindscape; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...