Как я могу создать фронтенд для matplotlib?

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

Я обрабатываю много спектров, которые по сути являются файлами ASCII с координатами x,y, полученными специальным программным обеспечением спектрометра. Стандартным программным обеспечением, используемым для анализа, является Origin от Originlab, но я считаю, что оно не удобное для пользователя, оно имеет гораздо больше функций, чем мне нужно, и не является бесплатным.

Поэтому я надеялся, что есть способ разработать внешний интерфейс для matplotlib, который позволяет использовать matplotlib с графическим интерфейсом. Я хочу иметь возможность считывать и выводить данные из файлов ASCII, увеличивать и уменьшать масштаб графика, вызывать сценарии для таких вещей, как функции обнаружения пиков и подгонки, где параметры, специфичные для функций, можно вводить в GUI.

Я просто озадачен, с чего начать, поэтому вопрос на самом деле таков: как проще всего разработать веб-интерфейс /GUI для matplotlib, который позволяет мне программировать вещи, о которых я упоминал выше? Кроме того, кросс-платформенное приложение было бы хорошо, потому что многие из моей группы работают в Windows.

2 ответа

Решение

Я не совсем уверен, что вы спрашиваете. Matplotlib уже имеет интерактивный графический интерфейс, если вы вызываете его, например, из оболочки Python или ipython. Вы читаете или создаете свои данные, и когда вы звоните plot()Вы получаете масштабируемое окно, из которого вы можете сохранить изображение и т. д.

Вы можете написать свои собственные процедуры для таких вещей, как обнаружение пиков, и просто вызывать их в интерактивном режиме из терминала. В конце дня, пока ваша функция создает набор данных (x, y), вы можете построить их в интерактивном режиме. Тогда опыт скорее похож на Matlab. Именно так большинство известных мне ученых используют matplotlib.

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

Другие вопросы по тегам