Научный черчение в Python - PullRequest
8 голосов
/ 03 мая 2009

У меня есть большой набор данных, содержащий (время события, широта, долгота), которые мне нужно визуализировать. Я надеялся создать xy-сюжет, похожий на фильм, но мне было интересно, есть ли у кого идея получше или есть простой способ сделать это в Python?

Заранее спасибо за помощь, --Leo

Ответы [ 7 ]

16 голосов
/ 03 мая 2009
8 голосов
/ 02 июня 2009

Самый простой вариант - это matplotlib. Два конкретных решения, которые могут работать для вас:

1) Вы можете создать серию графиков, каждый из которых является моментальным снимком в определенный момент времени. Они могут отображаться в виде динамического графика в matplotlib, где оси остаются неизменными, а данные перемещаются; или вы можете сохранить серию сюжетов в отдельных файлах, а затем объединить их для создания фильма (с помощью отдельного приложения). В официальных примерах есть несколько примеров для выполнения этих действий.

2) Простой точечный график, где цвета кругов меняются со временем, может хорошо работать для ваших данных. Это супер просто. См., Например, this , который производит эту цифру альтернативный текст http://matplotlib.sourceforge.net/plot_directive/mpl_examples/pylab_examples/ellipse_collection.hires.png

4 голосов
/ 03 мая 2009

Я бы попробовал rpy. Вся сила R, изнутри питона. http://rpy.sourceforge.net/

Rpy - это круто.

Проверьте библиотеку CRAN для анимации, http://cran.r -project.org / веб / пакеты / анимация / index.html

Конечно, вам нужно немного узнать о R, чтобы сделать это, но если вы планируете делать подобные вещи регулярно в будущем, вам стоит научиться.

3 голосов
/ 01 июня 2009

Если вы заинтересованы в научном построении с использованием Python, взгляните на Mlab: http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/mlab.html

Это позволяет вам строить 2d / 3d и анимировать ваши данные, а качество графиков действительно высокое.

2 голосов
/ 03 мая 2009

Enthought's Chaco предназначен для интерактивных / обновления сюжетов. API и тому подобное требуют некоторого времени, чтобы привыкнуть, но как только вы окажетесь там, это фантастическая среда для работы.

0 голосов
/ 03 мая 2009

Возможно, вы захотите посмотреть на PyQwt . Это библиотека графиков, которая работает с Qt / PyQt.

Несколько примеров PyQwt (в каталоге qt4examples) показывают, как создавать «движущиеся» / динамически изменяющиеся графики - посмотрите CPUplot.py, MapDemo.py, DataDemo.py.

0 голосов
/ 03 мая 2009

Я имел достаточный успех с приложениями Python, генерирующими SVG со встроенными функциями анимации, но это было с меньшим набором элементов, чем у вас, вероятно, есть. Например, если ваши данные относятся к сейсмическому событию, покажите кружок, который отображается, когда событие произошло, и увеличивается в размере, соответствующем величине события. Добавить индикатор перемещения по временной шкале очень просто.

Калейдоскоп (Opera, другие, может быть, Safari нет) показывает множество движущихся частей, и я нашел вдохновение. На сайте также есть много других хороших учебных материалов по SVG.

...