Научная графика
При анализе результатов расчетов повышенное внимание уделяется визуализации результатов вычислений, которое основывается на построение различных графиков. Многие расширения Python предоставляют пользователям мощные и гибкие средства построения графиков различной природы. Обычные для сегодняшнего дня программные средства постпроцессинга обеспечивают пользователю возможность работы с файлами данных, просмотра результатов в графическом виде, сохранения рисунка в выбранном стандартном графическом формате и печати графика.
Наиболее важными являются задачи визуализации одномерных или двумерных данных. С одномерными (1D) данными (графиками) мы связываем функцию одной переменной, с двумерными (2D) данными — функцию двух переменных. Отметим некоторые расширения Python, которые ориентированы прежде всего на создание качественных одномерных и многомерных графиков.
Основным программным продуктом для визуализации расчетных данных в Python является пакет Matplotlib22. Он закрывает основные потребности вычислителей, хорошо проработан и документирован, активно развивается и поддерживается. С учетом этих соображений будем рассматривать пакет Matplotlib как графическое ядро математического Python. Основные возможности пакета подробнее’обсуждаются ниже.
Из традиционных средств подготовки графиков в научных вычислениях необходимо отметить Gnu plot23. Gnuplot имеет собственную систему команд, возможна интерактивная работа в режиме командной строки, и режиме интерпретации скриптов из файла (командный режим). Gnuplot выводит графики как непосредственно на экран, так и в файлы основных графических форматов, таких как png, eps, svg, jpeg. Поддерживается экспорт для издательской системы LaTeX. Работа с Gnuplot в Python поддерживается пакетом Gnuplot.ру24. Он позволяет использовать Gnuplot в программах на языке Python для построения графиков для массивов данных из памяти, при чтении данных из файлов, а также графики математических функций.
Библиотека научной графики DISLIN25 является бесплатной для некоммерческого использования. Она предназначена для отображения расчетных данных в виде кривых, гистограмм, диаграмм, контуров и поверхностей. Поддерживаются графические форматы PostScript, pdf, svg, png, bmp, gif, tiff и другие. DISLIN доступна для языков программирования Фортран 77, Фортран 90/95, С, Perl, Python и Java и работает па большинстве операционных систем.
Кроссплатформснная библиотека научной графики MathGL26 обеспечивает быструю обработку и отображение больших массивов данных. Реализованы основные типы графиков для одно-, двух- и трехмерных массивов с поддержкой экспорта в растровые (png, jpeg, tiff или bmp) и векторные (eps и svg) форматы. Библиотека MathGL может быть использована в программах, написанных на C++, С, Fortran, Python и других языках.
Для научных вычислений на языке Python будут интересны продукты компании Enthought, Inc27. Для научной визуализации предлагается два пакета: Chaco и Mayavi. Для 2D интерактивной визуализации применяется Chaco с широкой поддержкой различных графических форматов. Пакет Mayavi2 обеспечивает легкую интерактивную 3D визуализацию данных. Это достигается использованием функций визуализации, аналогичных тем, что есть в MATLAB и matplotlib, для отображения скалярных, векторных и тензорных двух- и трехмерных величии.
Базовые возможности Matplotlib
Приведем пример использования пакета Matplotlib при визуализации функции 5т(27гж), когда 0 < х < 1. С учетом того, что мы уже знакомы с работой с массивами в рамках пакета NumPy, сформируем два одномерных массива по 100 элементов х и у. Для рисования графика используем модуль pyplot в пакете Matplotlib.
import numpy as np import matplotlib.pyplot as pit x = np.linspace(0., 1., 100) у = np.sin(2*np.pi*x) plt.plot(x, y) pit.show()
Результатом работы этой программы будет окно с графиком (рис. 3.1).
Отметим прежде всего некоторые интерактивные возможности работы с графиком в этом диалоговом окне, которое вызывается командой show О. Оно содержит навигационную панель инструментов, функциональные возможности которой легко анализируются экспериментально. Вы можете перемещать график, изменять его размеры, выделять часть графика с помощью мыши или сочетания клавиш (клавиши быстрого вызова). Имеется также кнопка для сохранения графика в выбранном графическом формате. Вы можете получить файлы со следующими расширениями: png, emf, ps, eps, svg, svgz, raw, rgba и pdf.
Возможность интерактивной работы с графикой важна при отладке ваших программ, для выбора графического отчетного материала. Для окончатсль-
Рис. 3.1 Окно графика
ной версии программы большее значение придается получению результатов в виде файлов с графиками. В пакете Matplotlib такая возможность реализуется командой savefigO.
Первый обязательный аргумент savefigO есть имя файла. Файл записывается в одном из следующих растровых и векторных форматов (табл. 3.4). Другие необязательные параметры позволяют управлять выводом. В частности,
Таблица 3.4 Поддерснсиваемые графические форматы
Do'stlaringiz bilan baham: |