Пример графика функции, построенного с помощью Python и matplotlib

Задание

Разработать программу на языке Python (версии 3.4.1 или более поздней) для отображения графика функции или системы функций в соответствии с вариантом. Программа должна обладать графическим интерфейсом пользователя. Значения коэффициентов математической функции должны считываться из таблицы Excel (файл *.xls или *.xlsx).

Графический интерфейс пользователя должен состоять из следующих обязательных элементов:

¾ область для отображения прочитанных из файла Excel коэффициентов;

¾ элемент управления ”кнопка”, при нажатии происходит построение графика математической функции;

¾ элемент управления ”кнопка”, при нажатии происходит завершение работы программы.

График функции может отображаться в главном окне программы, либо во всплывающем (вспомогательном) окне.

Для разработки графического интерфейса пользователя допускается использовать любую из существующих библиотек для языка Python. К примеру, это может быть библиотека tkinter, PyQt и т.п. Для работы с файлами Excel рекомендуется использовать библиотеку xlrd. Для построения графиков рекомендуется использовать библиотеку SciPy.

Обязательным является использование системы контроля версий при разработке программы. Рекомендуется использовать Mercurial (Hg) либо Git. Обязательным является создание репозитория для проекта на сервисе BitBucket (http://bitbucket.org).


Порядок выполнения работы и ее оценка

Обязательные элементы (55 баллов):

1. Графический интерфейс пользователя, состоящий из главного окна, на котором расположены:

a. две кнопки («показать график» и «выйти»);

b. любая область для отображения коэффициентов, прочитанных из файла Excel.

2. Отображение графика заданной по варианту математической функции, с учетом ее области определения.

3. Репозиторий с исходным кодом на BitBucket.

Дополнительные необязательные элементы:

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

2. Углубленная работа с репозиторием на сервисе BitBucket. Репозиторий должен содержать не менее 3х коммитов (наборов изменений), соответствующих разным стадиям разработки программы. Код программы в коммитах заметно должен отличаться. Коммиты должны иметь осмысленные описания. Также необходимо добавить к проекту на BitBucket нового разработчика с правами полного доступа, указав e-mail руководителя практикой: m.polyak@guap.ru (10 баллов).

3. Выбор имени и пути к Excel файлу с данными с помощью стандартного диалогового окна «Открыть файл» (5 баллов).

Защита проекта: до 30 баллов, но в сумме не более 100.

 

Пример графика функции, построенного с помощью Python и matplotlib

 


Установка интерпретатора Python и сопутствующих библиотек (для ОС Windows)

Существует два способа установить все необходимые для работы с Python программы и библиотеки. Первый способ заключается в скачивании готового набора (установщика) для проведения научных исследований с помощью Python (см. «Installing the SciPy stack», http://www.scipy.org/install.html). Такие установщики (Scientific Python distributions по ссылке выше) включают в себя интерпретатор языка, набор библиотек для проведения научных исследований и, в некоторых случаях, среду разработки или графическую оболочку для интерпретатора. При этом библиотеку для работы с файлами Excel все равно необходимо установить самостоятельно, см. пункт 3 ниже.

Второй способ заключается в последовательной ручной установке интерпретатора языка Python и всех необходимых библиотек. Перед установкой интерпретатора языка Python необходимо определиться с устанавливаемой версией: 32-битная версия (для 32-х и 64-х разрядных ОС) или 64-битная версия (только для 64-х разрядных ОС). В дальнейшем при установке всех библиотек необходимо четко соблюдать выбранную разрядность: если установлена 32-х разрядная версия интерпретатор Python, установить 64-х разрядную версию библиотеки для этого интерпретатора не удастся. Необходимо установить следующие компоненты:

1. Интерпретатор языка Python, https://www.python.org/downloads/ (выбрать последнюю версию, затем тип скачиваемого файла, например Windows x86 MSI installer или Windows x86-64 MSI installer)

2. На сайте http://www.lfd.uci.edu/~gohlke/pythonlibs/ найти, скачать и установить последние версии следующих библиотек, учитывая выбранную при установке интерпретатора разрядность (32 или 64):

a. NumPy;

b. matplotlib;

c. dateutil;

d. pyparsing;

e. six.

Последние три библиотеки нужны для корректной работы библиотеки matplotlib.

3. Скачать и установить библиотеку xlrd для чтения Excel файлов с сайта http://www.python-excel.org/. Для этого:

a. Скачать архив с библиотекой и распаковать его.

b. Запустить скрипт setup.py с параметром build. Для этого в командном интерпретаторе выполнить команду

python setup.py build

c. Запустить скрипт setup.py с параметром install. Для этого в командном интерпретаторе выполнить команду

python setup.py install.

 


Варианты заданий

Символами a, b, c и d обозначены параметры, которые должны считываться из файла Excel; y – зависимая переменная (значение функции); x – независимая переменная (аргумент функции).

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

 


Пример входных данных (содержимое Excel файла)

Порядок следования коэффициентов в таблице определяется значениями в первой строке таблицы. Числовые значения соответствующих коэффициентов задаются во второй строке таблицы. Таким образом разрабатываемая программа должна определять в какой ячейке таблицы находится значение того или иного коэффициента динамически, т.е. в процессе выполнения. В приведенном на рисунке примере d=0, a=1.05, c=3, b=-41.298.