LINUX.ORG.RU

Визуализация данных

 , ,


1

2

Привет всем. Как лучше визуализировать очень-очень большой двумерный (обычный в котором 2 оси x и y) график, без всяких многомерных проекций? Чтобы был понятен масштаб - скажем он начинается от полутора миллиона точек до 20-30 миллионов, значения тоже колеблются нехило (десятки миллиардов типичные значения). Хочется на него глазками посмотреть, есть ли в нём какие-то закономерности, вроде синусоиды и так далее, при том я не знаю масштабов на которых они будут видны (теоретически обязаны быть, но на практике...) Так что хочется чего-то, что можно маштабировать. Желательно из кода на Python-е. matplotlib навевает на меня тоску, он с более маленькими объёмами тонет в производительности, надо самому ручками выбирать тогда какие точки рисовать, ну и никакого масштабирования, а хочется чего-то умного, что не будет лишние точки рисовать.

Да, мне ещё гладкость глазками бы посмотреть, нет ли пиков каких-то, а если есть, то их характер, повторения и т.д.. Можно конечно для поиска скачков производными обмазываться, но не очень хочется в слепую бродить.

Матплотлиб работает, да, но хочется про альтернативы послушать.

★★★★★

Ответ на: комментарий от LINUX-ORG-RU

Ага. Правда по x от нуля до 2-3 миллионов (теоретически до 30-40, больше я нафиг не знаю зачем нужно), а по y там аж до 1e16 идут значения. Матплотлибом не удобно масштабировать, хочется чтобы потягать можно было кнопками, а не только лупой тыкать. Ну и зумаут надо делать удобно.

А так из приятного да, там волновая ступенчатая функция немного фрактального вида получилась, это просто замечательно, даже лучше моих ожиданий.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от peregrine

Хз, я вот ща подумал можно сгенерировать точки в массив и скормить opengl. Наверняка для питона есть огл модули в которых можно рисовать точки и потом просто смотреть «камерой». Интересно стало, пойду у себя попробую 50 миллионов точек сгенерировать и как то их подвигать (именно в 2d только что осознал что у меня нет функционала 2d плоскость таскать туда сюда,внезапно спасибо!)

LINUX-ORG-RU ★★ ()
Ответ на: комментарий от LINUX-ORG-RU

Да не, я посмотрел тот же матплотлиб легко тянет, зря я на него так (хотя на меньших данных на другой машине тупил гад, почему не знаю, может из-за того, что я подписи не отключал и он буквы на буквы старательно вырисовывал для 1000 объектов то). Только он не удобный до жути визуально. Не поддерживает хоткеи из коробки и навигация через назад-вперёд наркоманская (устарела лет на 20).

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

С дать проблема есть. Хоть это и проект с которым я сам играюсь в первую очередь для упорядочивания своих знаний и скорее всего я открываю Америку, хоть и иду очень странным путём, но если это не так и результат будет интереснее всего что есть на эту тему, то 2 варианта — проект доводится до ума, я пишу диссер и выкладываю проект в опенсорс, все им пользуются и рады/я поступаю как злобный копираст, бегу патентовать алгоритмы и начинаю продавать проект, благо тема интересная некоторым крупным коммерческим организациям. Хотя наиболее вероятный вариант (99+%) — до Америки я так и не дохожу или сильно сливаю всем известным маршрутам, но качаю своё понимание ряда алгоритмов и математических абстракций, а сам проект будет стыдно показывать другим людям (да и рассказывать про глупую идею, которая пришла мне в голову от прокрастинации с другой задачей, которую мне нужно решить и чем быстрее, тем лучше, стыдно), но ряд заметок и интересных штук с кодом появится на хабре, ЛОР-е или где-то ещё с вероятностью 90% в течении года, потому как даже результаты двух дней плавания в новом для меня болоте интересны, по крайней мере в образовательных целях, так как помогают на пальцах разобрать ряд используемых замудрёных алгоритмов, про которые плохо написано в сети на русском и английском языках.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Патентуй и зарабатывай. Не прокатит и если америка уже открыта то патенты сольёшь в public dоmain , твоё право. Если интересно в первую очередь коммерческим штукам нехера их кормить халявой. Если взлетит на вырученные средства ты сможешь делать другое в идеале много другого в том числе опенсорс если хочется. Для того что бы делать опенсорс нужна свобода, свобода времени, она с свою очередь завист от свободы от бытовухи, от денег если обобщить, тоесть не то что бы у тебя их не было, а то чтобы они тебя не парили в процессе пиления чего-то открытого. Так что если есть возможность обеспечить себе свободу времени ради траты его на науку или разработку чего-то другого то чё бы нет?

Люди, программисты которые нам каждый день втирают про то что «Вы должны писать свободный софт! Я вот из яндекса и у меня 10 реп со свободными пакетами ололо! я лавки опенсурс я чмавки фрисофтвер!» а потом он идёт в кабинет и пишет проприетарный код для компании. Также поступают 90% разработчиков свободного софта. Они пилят и в том числе проприетарный код, каждый божий день. Просто у них есть свободное время и на открытые/свободные сырцы. Если это тебя обеспечит, то нехер и думать. Если у тебя бабла в карманах шо я вагоны грузил. То выкладывай всё как есть без всяких там патентов =)

LINUX-ORG-RU ★★ ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Если надо сделать хорошо делай это сам;-)

Я сейчас как раз перепиливаю свои вьюверы, правда они ориентированы на 3D (точнее f(x,y) цветом). В более многомерных случаях строятся срезы. Сейчас надо неструктурированные сетки прикрутить потому что praview меня люто бесит а работать с ними как то надо.

Интерфейс с виду неброский, зато много форматов данных, удобно и быстро работает. И ничего лишнего в окне.

AntonI ()
Ответ на: комментарий от AntonI

ну я ж и говорю: есть софт (я пользуюсь Visit; есть еще другие), которые для визуализации 3Д данных и всякого такого. Я, в частности, его для своих МГД симуляций использую (которые с AMR). Когда снапшот 2G, то тот факт, что визит умеет в многопроцессность - очень выручает.

Конечно, если у вас формат свой, то придется писать конвертер. Тем не менее

sshestov ()

У меня сейчас 20000000 неотсортированных точек radeon hd 6850 рисует на ~35fps можно увеличивать, уменьшать и таскать. Миллиардные значения можно делить на одно число так что-бы сохранялись позиции по отношению к друг другу и это было адекватно для увеличения и уменьшения. Ща зафигачу сортировку предварительную и рисовку по блокам так что-бы в кадре было не более 8 миллионов точек. На них моё железо выдаёт 80 кадров =)

LINUX-ORG-RU ★★ ()

Была у меня подобная задача - надо было показывать графики с «самописца».

Проблема была в том, что прошлый программист на билдере с использованием стандартных структур данных наваял такую жесть, что она отжирала всю память и падала на входном файле размером 30 мегабайт.

Тогда я делал выборку данных прямо из файла с прореживанием, долго пришлось возиться с перерисовкой графиков, но работало быстрее, чем прошлая программа на C++ на меньшем фйле…

shkolnick-kun ★★★★ ()

Короче поигрался я https://www.youtube.com/watch?v=j6WJqb-erZI адекватно разбивать на блоки чёт у меня не получилось, ну и ладно :D Если прям просто смотреть на десятки миллионов точек выискивая глазами там что-то то, не парься генерируй из точек картинку и разглядывай в просмотрщике который сможет сожрать. Вот и всё

LINUX-ORG-RU ★★ ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)