Я ищу интерактивную графическую библиотеку для Python.
Под " graph " я имел в виду набор узлов, соединенных набором вершин (не график значений по оси xy и не сетка пикселей).
Под «интерактивным» я имел в виду, что я могу перетаскивать узлы вокруг, и мне нужно иметь возможность щелкать по узлам / вершинам, и библиотека должна передавать узлы / вершины моим обратным вызовам, которые могут добавлять / удалятьузлы / вершины или отображаемая информация (я не могу загрузить полный график при запуске, так как набор данных слишком большой / сложный; вместо этого я буду загружать только необходимые куски данных в зависимости от пользовательских данных).
By PythonЯ имел в виду язык программирования Python , графическая библиотека должна иметь привязку CPython.У меня есть Python 2.7 и Python 3.1, но я могу понизить до 2.6, если это необходимо.Это требование языка, потому что набор данных, с которым я работаю, имеет только привязку Python.
Библиотека графиков должна поддерживать ориентированный граф и иметь возможность автоматически размещать узлы.Мне нужно поставить метки на узлах.
Предпочтительно, чтобы алгоритм размещения располагал соседние узлы рядом друг с другом.Он должен быть способен обрабатывать от 100 до 1000 узлов и около 300-4000 вершин на моем 4-летнем ноутбуке (обычно я начинаю с примерно 100 узлов, но это число может увеличиться в зависимости от ввода данных пользователем).Предпочтительно это должна быть библиотека с не слишком большим количеством зависимостей (за исключением, возможно, Gnome).Предпочтителен открытый исходный код.
Я уже написал простой прототип своей программы с использованием Tkinter Canvas, но мне нужна более серьезная графическая библиотека для расширения программы.Я посмотрел на graphviz и matplotlib, но, видимо, они предназначены только для работы со статическими графами и, видимо, потребуют значительного объема работы для интерактивных манипуляций (поправьте меня, если я ошибаюсь, я только кратко рассмотрел их),Я также попытался сгенерировать график в файл SVG и использовать его для просмотра с помощью Inkscape, но он слишком медленный и занимает слишком много памяти, и из-за большого количества вершин он становится запутанным беспорядком.