Интерактивный график в Python?
Matlab и Mathematica имеют функции, которые позволяют пользователю манипулировать содержимым графика, используя, скажем, слайдер. Например, если у вас есть набор трехмерных данных, легко сделать небольшую программу, которая позволяет просматривать 2D-фрагменты набора трехмерных данных, где пользователь может перемещать ползунок, чтобы перемещаться по тому, какой срез отображается. Есть ли что-нибудь в python, которое позволяет использовать эту способность без больших усилий? Например, можно ли это сделать в matplotlib или что-то подобное? I
Спасибо.
Ответы
Ответ 1
Моя первая мысль была бы Mayavi, что отлично подходит для визуализации данных, особенно в 3D. Он полагается на VTK. Он включен в дополненную ароматом версию Python, а также Chaco для 2D-графика. Чтобы получить представление, посмотрите на Travis Vaught nice screencast в Многомерную визуализацию данных в Python - Mixing Chaco и Mayavi.
Также возможно встроить базовые интерактивные функции (например, слайдер) в Matplotlib, см. matplotlib.widgets
и примеры виджета.
Наконец, вы можете использовать rpy (или лучше, rpy2
) и воспользоваться интерфейсом R.
Ответ 2
Вы посмотрели на Vtk? http://www.vtk.org/ Одна из их демонстраций делает именно то, что вы просите.
Ответ 3
В принципе вы можете сделать это с помощью MathGL. Это кросс-платформенная библиотека GPL для построения графика.
Для каждого щелчка мыши вы можете найти положение x, y, z в сюжете или щелкнув объект и отрегулировать (replot) некоторую другую информацию соответственно. Однако вы должны сами обрабатывать щелчки мыши (например, используя PyQt).
Ответ 4
Другой вариант - использовать python в SAGE интерфейсе/среде вычисления, который имеет команду @interact
(см. здесь для конкретной справки по этой команде)