Интерактивный график в 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 (см. здесь для конкретной справки по этой команде)