Я не думаю, что можно приехать удаленно близко к визуализации этого в плоском расположении.
я был заинтригован Гиперболические Графики, описывали в этой научно-исследовательской работе в течение некоторого времени. Попробуйте программное обеспечение от SourceForge.
Другая идея просто изображает узлы в виде графика с помощью TreeMap, как замечено в Panopticode.
Существует список приложений здесь: http://www.mkbergman.com/?p=414
Морж и LGL являются двумя инструментами, которым, предположительно, удовлетворяют для больших графиков. Однако оба, кажется, требуют, чтобы графики были введены как текстовые файлы в их собственном специальном формате, который мог бы быть болью.
Инструмент окон, который может визуализировать графики, pajek, он генерирует вывод eps, однако я не знаю, может ли он считать Ваши данные.
Вы могли попробовать aiSee: http://www.aisee.com/manual/unix/56.htm
Mathematica мог очень вероятно обработать его, но я должен признать, что моя первая реакция была вроде комментария, в котором было сказано, "берут листок бумаги и окрашивают его в черный". Там никакой путь не состоит в том, чтобы уменьшить плотность графика?
А возможная проблема - то, что Вы, кажется, ищете расположение, не просто представив. Я не знаю о Больших характеристиках O разметок, реализованных различными инструментами, но интуитивно я предположил бы, что это могло бы взять длинный время для разметки так большого количества данных.
Вы могли бы предложить санированную версию файла разработчикам тех инструментов как сценарий отладки, если все остальное перестало работать.
Проверьте Java/Jython базирующееся ПРЕДПОЛОЖЕНИЕ: http://graphexploration.cond.org/
Должен ли он быть действительно точным?
В зависимости от того, что вы пытаетесь выполнить, может быть достаточно просто построить график 10% или 1% объема данных. (конечно, это тоже может быть совершенно бесполезным, но все зависит от того, для чего предназначена визуализация)
Я предлагаю вам сначала выполнить некоторую предварительную обработку данных, например свернуть узлы в кластеры, а затем визуализировать кластеры. Сворачивание уменьшит количество узлов и упростит отображение результирующего графа такими алгоритмами, как Камада-Кавай или Фрухтерман-Рейнгольд.
Если вам действительно нужно визуализировать 500 000 узлов, можете ли вы использовать простой круговой макет. Это будет легко визуализировать без проблем, которые имеют алгоритмы, основанные на силе. Взгляните на Circos: http://mkweb.bcgsc.ca/circos/
Circos - это визуализация графиков, разработанная специалистами в области биоинформатики, которая предназначена для визуализации геномов и других чрезвычайно больших и сложных наборов данных.
Это пакет на основе PERL, надеюсь, это не проблема.
Я ожидаю, что граничная кластеризация ( http://www.visualcomplexity.com/vc/project_details.cfm?id=679&index=679&domain= ) поможет. Этот метод объединяет связанные ребра вместе, уменьшая визуальную сложность графа. Однако вам, возможно, придется реализовать алгоритм самостоятельно.
Проект Large Graph Layout (LGL) очень помог мне с подобной проблемой. Он обрабатывает макеты и имеет небольшое приложение Java для рисования созданных макетов в 2D. Никакого векторного вывода из коробки нет, поэтому вам придется нарисовать график самостоятельно (с учетом координат узлов, созданных LGL)
Вы также можете попробовать NAViGaTOR (раскрытие: я один из разработчиков этого программного обеспечения). Мы успешно визуализировали графы с 1,7 миллиона ребер. Хотя такими большими сетями сложно манипулировать (пользовательский интерфейс будет тормозить). Однако он использует OpenGL для визуализации, поэтому часть служебных данных переносится на видеокарту.
Также обратите внимание, что вам нужно будет настроить параметры памяти в диалоговом окне File-> Preferences, прежде чем вы сможете успешно открыть такую большую сеть.
Наконец, как указывается в большинстве других ответов, вам лучше реорганизовать свои данные во что-то меньшее и более значимое.