Есть ли библиотека интерактивного построения графиков для Python

Я ' Я ищу интерактивную графическую библиотеку для Python.

Под « графиком » я имел в виду набор узлов, соединенных набором вершин (не график значений по оси xy и не сетку пикселей).

Под «интерактивным» , Я имел в виду, что могу перетаскивать узлы, и мне нужно иметь возможность щелкать узлы / вершины, чтобы библиотека передавала узлы / вершины моим обратным вызовам, которые могут добавлять / удалять узлы / вершины или отображать информацию (Я не могу загрузить полный график при запуске, поскольку набор данных слишком велик / сложен; вместо этого я буду загружать только необходимые фрагменты данных в зависимости от ввода данных пользователем).

Под 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 для его просмотра, но он слишком медленный и занимает слишком много памяти, а из-за огромного количества вершин становится запутанным беспорядком.

57
задан Lie Ryan 22 April 2011 в 21:22
поделиться